在WooCommerce挂钩函数

时间:2016-11-28 17:32:04

标签: php wordpress woocommerce user-data hook-woocommerce

我在用户个人资料中创建了一个自定义字段,现在我需要将该字段的值调用到WooCommerce购物车中作为折扣。
这是在购物车中添加自定义费用的功能:

add_action('woocommerce_cart_calculate_fees' , 'add_custom_fees');
$descuentototal = get_the_author_meta( 'descuento', $user_id );

function add_custom_fees( WC_Cart $cart ){
    if( $descuentototal < 1 ){
        return;
    }
    // Calculate the amount to reduce
    $cart->add_fee( 'Discount: ', -$descuentototal);
}

但无法获得&#39; descuento&#39;的价值。

我怎么能这样做?

感谢。

1 个答案:

答案 0 :(得分:1)

您需要使用WordPress功能 get_current_user_id() 来获取当前用户ID和get_user_meta()以获取用户元数据。

因此 woocommerce_cart_calculate_fees 挂钩的正确代码为:

add_action( 'woocommerce_cart_calculate_fees', 'add_custom_fees' );
function add_custom_fees(){

    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    if ( !is_user_logged_in() )
        return;

    $user_id = get_current_user_id();
    $descuentototal = get_user_meta($user_id, 'descuento', true);

    if ( $descuentototal < 1 ) {
        return;
    } else {
        $descuentototal *= -1;

        // Enable translating 'Discount: '
        $discount = __('Discount: ', 'woocommerce');

        // Calculate the amount to reduce (without taxes)
        WC()->cart->add_fee( $discount, $descuentototal, false );
    }
}

代码可以在您的活动子主题(或主题)的任何php文件中,也可以在任何插件的php文件中。

参考或相关: