Я не знаю, возможно ли это, но нам нужно добавить несколько разных способов оплаты для Барселоны.
Итак, наша идея заключается в том, что если клиент проживает в районе Барселоны (Каталония), он увидит способ оплаты кредитной картой и банковский перевод, отличный от остальной части Испании.
Это возможно с WooCommerce?
Благодарю.
Если вы хотите включить такую функцию в 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 вашей активной дочерней темы (или темы) или также в любой файл плагина.
Других решений пока нет …