Управлять покупателями, которым разрешено делать покупки в Woocommerce - PullRequest
0 голосов
/ 05 декабря 2018

У нас есть оптовая сеть с интернет-магазином.Нам нужно заблокировать покупку нового клиента, пока мы его не проверим (из-за ограничений на доставку и т. Д.).Возможно ли это (установив ему какую-то другую роль или заблокировав роль покупателя по сравнению с покупкой)?

Кстати, я нашел это, но я бы предпочел более изменяющегося пользователя, а не товары, потому что мы хотим заблокировать все товары.Вставляя новые, кто-то может забыть о настройке правильной категории продукта. Ограничить продукт woocommerce для определенного покупателя

1 Ответ

0 голосов
/ 05 декабря 2018

Следующий код отключит покупки товара (скрытая кнопка добавления в корзину везде) до тех пор, пока клиент не будет утвержден менеджером магазина на страницах раздела пользователей с правами пользователя и имеет поле произвольного выбора, чтобы разрешить покупку покупателюпродукты:

// Disable purcahses if customer is not approved
add_filter( 'woocommerce_is_purchasable', 'purchasable_products_based_on_city', 10, 2 );
function purchasable_products_based_on_city( $purchasable, $product ) {
    if( ! get_user_meta( get_current_user_id(), 'can_purchase', true ) )
        $purchasable = false;

    return $purchasable;
}

// Add allowed custom user field in admin
add_action( 'show_user_profile', 'add_user_validation_field', 1, 1 );
add_action( 'edit_user_profile', 'add_user_validation_field', 1, 1 );
function add_user_validation_field( $user )
{
    $value = get_user_meta( $user->ID, 'can_purchase', true );

    $selected0 = ! $value ? ' selected="selected"' : '';
    $selected1 = $value   ? ' selected="selected"' : '';

    ?><h3><?php _e("Customer validation (Allow purchase)", "woocommerce" ); ?></h3>
    <table class="form-table"><tr>
        <th><label for="can_purchase">Customer can purchase</label></th>
        <td><select style="" id="can_purchase" name="can_purchase" class="select short">
            <option value=""<?php  echo $selected0; ?>><?php _e("Not allowed", "woocommerce"); ?></option>
            <option value="1"<?php echo $selected1; ?>><?php _e("Yes (validated)", "woocommerce"); ?></option>
        </select></td></tr></table><br /><?php
}

// Save allowed custom user field in admin
add_action( 'personal_options_update', 'save_user_validation_field' );
add_action( 'edit_user_profile_update', 'save_user_validation_field' );
function save_user_validation_field( $user_id )
{
    if( isset($_POST['can_purchase']) )
        update_user_meta( $user_id, 'can_purchase', esc_attr( $_POST['can_purchase'] ) );
}

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

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...