【问题标题】:Adding text before and after prices in WooCommerce excluding subscriptions products在 WooCommerce 中的价格之前和之后添加文本,不包括订阅产品
【发布时间】:2019-09-25 17:02:39
【问题描述】:

在 WooCommerce 中,我使用以下代码在显示的产品价格(“租金:”和“/天”)周围添加一些文本,例如:

function cp_change_product_price_display( $price ) {
    echo 'Rent: ' . $price . '/day';    
}
add_filter( 'woocommerce_get_price_html', 'cp_change_product_price_display' );
add_filter( 'woocommerce_cart_item_price', 'cp_change_product_price_display' );

我也使用插件“YITH WooCommerce Subscription”,我的代码有问题。现在在订阅包中,我有一个这样的价格显示:

  • 租金:$20/7天/天
  • 租金:80 美元/月/天。

如何从我的代码中排除订阅产品或订阅类别以避免此问题?

【问题讨论】:

    标签: php wordpress woocommerce cart subscription


    【解决方案1】:

    以下将排除 WooCommerce 订阅产品...

    add_filter( 'woocommerce_get_price_html', 'change_product_price_display', 10, 2 );
    add_filter( 'woocommerce_cart_item_price', 'change_product_price_display', 10, 2 );
    function change_product_price_display( $price, $product ) {
        if( ! in_array( $product->get_type(), array('subscription', 'subscription_variation', 'variable_subscription') ) )
            echo 'Rent: ' . $price . '/day';    
    }
    

    因此,您需要找出 YITH WooCommerce 订阅的产品类型,并在此代码中进行设置。

    代码在您的活动子主题(或活动主题)的functions.php 文件中。它应该可以工作。

    【讨论】:

    • 感谢您的回答。但与其他答案不同的是,这里没有任何变化。
    • @Dmitry 我从来没有使用过你的插件,所以我不知道它的产品类型是什么......在我的回答中我明确提到你需要找出它们。我的答案适用于官方 WooCommerce 订阅插件......
    • 是的,我明白了。但无论如何,感谢您的帮助。第二个答案更适合我。
    【解决方案2】:

    您可以添加条件来检查当前产品是否订阅。示例。

    function cp_change_product_price_display( $price, $instance ) {
        if ( 'yes' === $instance->get_meta( '_ywsbs_subscription' ) ) {
            return $price;
        }
        return 'Rent: ' . $price . '/day';
    }
    
    add_filter( 'woocommerce_get_price_html', 'cp_change_product_price_display', 10, 2 );
    

    对于购物车价格:

    function cp_change_product_price_display_in_cart( $price, $cart_item, $cart_item_key ) {
        $product = $cart_item['data'];
        if ( 'yes' === $product->get_meta( '_ywsbs_subscription' ) ) {
            return $price;
        }
        return 'Rent: ' . $price . '/day';
    }
    
    add_filter( 'woocommerce_cart_item_price', 'cp_change_product_price_display_in_cart', 10, 3 );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-09
      • 2014-05-04
      • 2018-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多