【问题标题】:How to replace woocommerce_product_tax_class deprecated hook?如何替换 woocommerce_product_tax_class 已弃用的钩子?
【发布时间】:2021-06-14 22:03:23
【问题描述】:

我的错误日志中出现以下错误:woocommerce_product_tax_class 自 3.0.0 版起已弃用!请改用 woocommerce_product_get_tax_class。

我有以下功能来显示不同的用户角色不同的税种。我可以直接将“woocommerce_product_tax_class”更改为“woocommerce_product_get_tax_class”还是需要重写该函数?

function wc_diff_rate_for_user( $tax_class, $product ) {
        // Getting the current user 
        $current_user = wp_get_current_user();
        $current_user_data = get_userdata($current_user->ID);
    
        if ( in_array( 'eu_no_duty', $current_user_data->roles ) )
            $tax_class = 'Zero Rate';
      
      elseif ( in_array( 'eu_no_vat', $current_user_data->roles ) )
            $tax_class = 'Zero Rate';
      
      elseif ( in_array( 'eu_trusted', $current_user_data->roles ) )
            $tax_class = 'Zero Rate';
    
        return $tax_class;
    }
    add_filter( 'woocommerce_product_tax_class', 'wc_diff_rate_for_user', 1, 2 );

【问题讨论】:

    标签: php wordpress woocommerce product hook-woocommerce


    【解决方案1】:

    因此,自 WooCommerce 3 以来,钩子 woocommerce_product_tax_class 已被弃用,取而代之的是 woocommerce_product_get_tax_classwoocommerce_product_variation_get_tax_class 钩子。

    改用以下简化代码:

    add_filter( 'woocommerce_product_get_tax_class', 'tax_rate_based_on_user_role', 10, 2 );
    add_filter( 'woocommerce_product_variation_get_tax_class', 'tax_rate_based_on_user_role', 10, 2 );
    function tax_rate_based_on_user_role( $tax_class, $product ) {
        $roles   = array('eu_no_duty', 'eu_no_vat', 'eu_trusted'); // Here define user roles
        $user    = wp_get_current_user(); // Get current WP_User object 
    
        $matches = array_intersect( $user->roles, $roles ); // Check for matching user roles
    
        if ( ! empty($matches) ) {
            $tax_class = 'Zero Rate';
        }
        return $tax_class;
    }
    

    代码位于活动子主题(或活动主题)的functions.php 文件中。它应该更好地工作。

    【讨论】:

      猜你喜欢
      • 2015-06-22
      • 2020-02-27
      • 2018-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-10
      • 1970-01-01
      相关资源
      最近更新 更多