Отключить платежную проверку WooCommerce для метаданных определенного пользователя - PullRequest
0 голосов
/ 13 мая 2019

Мой клиент хочет, чтобы некоторые клиенты могли впоследствии оплачивать счета.Поэтому я добавил дополнительное поле в профиле пользователя, где он может выбрать да / нет.Это поле работает нормально и сохраняет должным образом.

В зависимости от выбора: нет = поведение интернет-магазина по умолчанию и клиент должен платить напрямую.да = клиент может заказать товары без оплаты, позже он получит счет.

Также испробовал разные способы оплаты, но они доступны для всех, я хочу их только для определенных пользователей.

Теперь я попытался на основе этого поля в functions.php добавить условный фильтр следующим образом:

if (esc_attr( get_the_author_meta( 'directbetalen', $user->ID ) ) == 'no') {
    add_filter('woocommerce_cart_needs_payment', '__return_false');
}

Но, похоже, он не работает?

Я хочу оплатубудет пропущено, если для поля установлено значение no.В противном случае действуйте как обычно, и клиент должен заплатить.

1 Ответ

1 голос
/ 13 мая 2019

Используя функцию WordPress get_user_meta(), попробуйте следующее:

add_filter( 'woocommerce_cart_needs_payment', 'disable_payment_for_specific_users' );
function show_specific_payment_method_for_specific_users( $needs_payment ) {
    if ( get_user_meta( get_current_user_id(), 'directbetalen', true ) === 'no' ) {
        $needs_payment = false;
    }
    return $needs_payment;
}

Код помещается в файл functions.php вашей активной дочерней темы (или активной темы). Это должно работать.

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