我正在寻找一种为WooCommerce中的特定用户角色添加额外的购物车/税费的方法。我正在使用WooCommerce PDF Invoices & Packing Slips插件。 至少应将此费用添加到发送给用户的电子邮件以及随其发送的PDF发票中。
我看了下面的代码,以为我可以使用它。我只是不明白如何为产品添加不同的“税种”。 所以现在发生的是根本没有加税。
add_filter( 'woocommerce_before_cart_contents', 'wc_diff_rate_for_user', 1, 2 );
add_filter( 'woocommerce_before_shipping_calculator', 'wc_diff_rate_for_user', 1, 2);
add_filter( 'woocommerce_before_checkout_billing_form', 'wc_diff_rate_for_user', 1, 2 );
add_filter( 'woocommerce_product_tax_class', 'wc_diff_rate_for_user', 1, 2 );
function wc_diff_rate_for_user( $tax_class ) {
if ( !is_user_logged_in() || current_user_can( 'customer' ) ) {
$tax_class = 'Zero Rate';
}
return $tax_class;
}
我希望有人能帮助我。
答案 0 :(得分:1)
已更新:您正在使用的代码已过时,因此不需要。请尝试以下示例,该示例将根据用户角色添加一定百分比的费用:
add_action( 'woocommerce_cart_calculate_fees', 'custom_percentage_fee', 20, 1 );
function custom_percentage_fee( $cart ) {
if ( ( is_admin() && ! defined( 'DOING_AJAX' ) ) )
return;
// Get current WP_User Object
$user = wp_get_current_user();
// For "customer" user role
if ( in_array( 'customer', $user->roles ) ) {
$percent = 5; // <== HERE set the percentage
$cart->add_fee( __( 'Fee', 'woocommerce')." ($percent%)", ($cart->get_subtotal() * $percent / 100), true );
}
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。