2016-11-28 18 views
1

Я создал пользовательское поле в профиле пользователя, теперь мне нужно вызвать значение этого поля в корзину 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); 
} 

Но не удается получить значение «descuento».

Как я мог это сделать?

Спасибо.

ответ

1

Вы должны использовать функции WordPress get_current_user_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 файлов.

Ссылка или зависимая: