Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在从自定义字段中调用值时使用jQuery删除类_Php_Css_Woocommerce_Custom Fields - Fatal编程技术网

Php 如何在从自定义字段中调用值时使用jQuery删除类

Php 如何在从自定义字段中调用值时使用jQuery删除类,php,css,woocommerce,custom-fields,Php,Css,Woocommerce,Custom Fields,我正在为用户构建一个自定义字段,以便在WooCommerce支持的站点中允许自定义销售徽章。将创建该字段,并在“商店存档”页面上回显该值,显示用户输入的销售徽章值。但有一个问题。默认的销售徽章也会显示。我怎样才能去掉这个 这就是我回应价值观的方式 add_action('woocommerce_before_shop_loop_item', 'ac_wc_show_custom_fields', 20); function ac_wc_show_custom_fields(){

我正在为用户构建一个自定义字段,以便在WooCommerce支持的站点中允许自定义销售徽章。将创建该字段,并在“商店存档”页面上回显该值,显示用户输入的销售徽章值。但有一个问题。默认的销售徽章也会显示。我怎样才能去掉这个

这就是我回应价值观的方式

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>';

        }
    }
我只想在检索到sales badge的自定义字段时应用css或任何其他jQuery方法来删除
.onsale
span/class。希望我讲得通

谢谢

附录

我还尝试使用此函数覆盖销售模板

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' );

     }
}
但我最终得到了两个销售标记。请看图片


对于在JavaScript(w/jQuery)中执行此操作,如果您在页面底部运行此操作,我认为您将得到您想要的

<script type="text/javascript">
    $(".ac-loop-cus-badge").removeClass("onsale");
</script>
更新 例如使用
:contains
的示例,其中产品A位于其产品映像下方的DOM中,您可以使用以下内容

$(“.image container span:contains('Product A')”).parent().find(“.ac loop cus badge”).removeClass(“onsale”)

图像会在这里

这是产品A,现在正在打折!
谢谢,但不幸的是,这没有帮助,因为这些都是通过归档页面上的挂钩调用的,当我删除类时,它适用于所有情况,因为条件不匹配。我仍在寻找解决方案。抱歉@Ayanize,我没有跟上。那么,具有
ac-loop-cus-badge
类的html标记与那些具有
ac-loop-cus-badge
且不需要删除
onsale
类的html标记之间有什么不同呢?是页面的某个子集,还是您可以进一步解释的其他业务规则?是的,我只想在调用自定义字段值的产品上应用css(隐藏销售徽章),而不是在所有产品上应用css(隐藏销售徽章),即使这些产品已经销售到位。简言之,在产品A上添加自定义徽章,在产品A上隐藏默认徽章图标,而不是在其他产品上。所以现在,我猜产品A没有css类(即,
span=“Product-A”
。您能通过产品的文本描述来识别产品A吗?请参阅链接。感谢您的时间。不幸的是,这也没有帮助。没有任何产品A或任何其他产品没有包含()的唯一文本jQuery可以选择和应用其他规则。
<script type="text/javascript">
    $(".ac-loop-cus-badge").removeClass("onsale");
</script>
<div class="shop-archive-page"> 
    <!-- page contents do here-->
    <img class="ac-loop-cus-badge"></img>
    <!-- more page contents do here-->
</div>
<script type="text/javascript">
    $(".shop-archive-page .ac-loop-cus-badge").removeClass("onsale");
</script>