在 WooCommerce 挂钩函数中调用自定义用户字段值
Call a custom user field value in a WooCommerce hooked function
我在用户个人资料中创建了一个自定义字段,现在我需要将该字段的值作为折扣调用到 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);
}
但无法获取 'descuento' 的值。
我该怎么做?
谢谢。
您需要使用 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 文件。
参考或相关:
我在用户个人资料中创建了一个自定义字段,现在我需要将该字段的值作为折扣调用到 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);
}
但无法获取 'descuento' 的值。
我该怎么做?
谢谢。
您需要使用 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 文件。
参考或相关: