我正在为用户构建自定义字段,以允许在WooCommerce支持的站点中使用自定义销售徽章 . 创建该字段,并且还在商店存档页面上回显该值,显示用户输入销售标记值 . 但是有一个问题 . 默认销售徽章也会显示 . 我怎么能删除这个?
这就是我如何回应 Value
add_action('woocommerce_before_shop_loop_item', 'ac_wc_show_custom_fields', 20);
function ac_wc_show_custom_fields(){
global $post;
if (get_post_meta( $post->ID, 'ac_custom_badge', true )!==''){
echo '<div class="ac-loop-cus-badge">' .get_post_meta( $post->ID, 'ac_custom_badge', true ) . '</div>';
}
}
我然后尝试了这个's working but it' s将属性 display:none
添加到站点中的所有 .onsale
类
function ac_wc_show_custom_fields(){
global $post;
if (get_post_meta( $post->ID, 'ac_custom_badge', true )!==''){
echo '<div class="ac-loop-cus-badge">' .get_post_meta( $post->ID, 'ac_custom_badge', true ) . '</div>';
echo '<style>.onsale{display:none;}</style>';
}
}
我只想在检索销售徽章的自定义字段时应用css或任何其他jQuery方法来删除 .onsale
span / class . 希望我有道理 .
谢谢
Addendum
我还尝试使用此功能覆盖销售模板
add_action( 'woocommerce_before_shop_loop_item_title', 'custom_woocommerce_show_product_loop_sale_flash', 10 );
function custom_woocommerce_show_product_loop_sale_flash() {
global $post;
if (get_post_meta($post->ID, 'ac_custom_badge', true)) {
wc_get_template( 'files/sale-flash.php' );
}
}
但我最终有两个销售市场 . 请看图片
1 回答
要在JavaScript(w / jQuery)中执行此操作,如果您在页面底部运行此操作,我认为您将获得所需的内容 .
有关如何工作的文档可以在removeClass找到 .
如果您只需要将其应用于一个页面或容器div,则可以在商店归档页面中添加一个类 . 这将阻止它删除其他页面或div的
onsale
类 .UPDATE 对于使用
:contains
的示例,其中产品A位于其产品图像下方的DOM中,您可以使用以下内容 .