Избегайте задержек по продукту для роли «клиента» пользователя в Woocommerce - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть два типа ролей: обычный покупатель и оптовый покупатель. Оптовые клиенты должны иметь возможность размещать заказы, а обычные клиенты не имеют права размещать заказы. Я не php-разработчик, и мой код еще не работает, пожалуйста, помогите мне заставить его работать:

add_filter( 'woocommerce_product_backorders_allowed', 'woocommerce_product_backorders_allowed', 10, 3 );
function woocommerce_product_backorders_allowed( $backorder_allowed, $product_id, $product ){
    $targeted_user_role = 'zakelijke_klant';
    $user_data = get_userdata(get_current_user_id());
    if ( in_array( $targeted_user_role, $user_data->roles ) ) {
         $backorder_allowed = true;
    }
    return $backorder_allowed;
}

1 Ответ

0 голосов
/ 08 ноября 2018

Вместо этого попробуйте следующее, ориентируясь на обычную пользовательскую роль:

add_filter( 'woocommerce_product_backorders_allowed', 'woocommerce_product_backorders_allowed', 10, 3 );
function woocommerce_product_backorders_allowed( $backorder_allowed, $product_id, $product ){
    if ( current_user_can('customer') ) {
        $backorder_allowed = false;
    } else {
        $backorder_allowed = true;
    }

    return $backorder_allowed;
}

Код помещается в файл function.php вашей активной дочерней темы (active theme). Проверено и работает.

...