Включение метода оплаты в зависимости от местоположения клиента

Я не знаю, возможно ли это, но нам нужно добавить несколько разных способов оплаты для Барселоны.

Итак, наша идея заключается в том, что если клиент проживает в районе Барселоны (Каталония), он увидит способ оплаты кредитной картой и банковский перевод, отличный от остальной части Испании.

Это возможно с WooCommerce?

Благодарю.

2

Решение

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

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

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

Как только это будет сделано, будет легко включить / отключить платежные шлюзы на основе полей этого зарегистрированного клиента.

1) Для настройки полей регистрации:
Как добавить пользовательские поля при регистрации пользователя на странице «Моя учетная запись»

2) Для платежных шлюзов / методов, основанных на этой информации о Клиенте, Вы можете использовать пользовательскую подключенную функцию в woocommerce_available_payment_gateways крючок фильтра:

add_filter( 'woocommerce_available_payment_gateways', 'custom_payment_gateways_process' );
function custom_payment_gateways_process( $available_gateways ) {

if ( is_admin() || !is_user_logged_in() )
return $available_gateways;

$current_user_id = get_current_user_id();
$user_meta = get_user_meta( $current_user_id );

// User City, Postcode, State and Country code
$user_city = $user_meta['billing_city'];
$user_postcode = $user_meta['shipping_postcode'];
$user_State = $user_meta['shipping_state'];
$user_country = $user_meta['shipping_country'];

Disable Cash on delivery ('cod') method example for customer out of spain:
if ( isset( $available_gateways['cod'] ) && $user_country != 'ES' ) {
unset( $available_gateways['cod'] );
}

// You can set many conditions based on the user data

return $available_gateways;
}

Этот код является лишь примером, и вам нужно будет установить внутри правильные условия для целевых способов оплаты / шлюзов …

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

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]