Отключите все платежные шлюзы, кроме BACS, в зависимости от страны гео-ip в Woocommerce - PullRequest
0 голосов
/ 01 октября 2018

В Woocommerce я использую код, сделанный из этого потока ответов , который включает ВСЕ платежные шлюзы, если IP-адрес пользователя GEO из массива разрешенных стран.Здесь разрешенный код страны, который я хочу, - "SE" (Швеция) .

Я хотел бы отключить все платежные шлюзы, кроме BACS, чтобы они стали доступны, если IP-адрес GEO находится за пределами Швеции (предварительно определенная разрешенная страна).

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 01 октября 2018

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

// Disabling payment gateways (except BACS) based on user IP geolocation country
add_filter( 'woocommerce_available_payment_gateways', 'geo_country_based_available_payment_gateways', 90, 1 );
function geo_country_based_available_payment_gateways( $available_gateways ) {
    if ( is_admin() ) return; // Only on front end

    // ==> HERE define your country codes
    $allowed_country_codes = array('SE');

    // Get an instance of the WC_Geolocation object class
    $geolocation_instance = new WC_Geolocation();
    // Get user IP
    $user_ip_address = $geolocation_instance->get_ip_address();

    // Get geolocated user IP country code.
    $user_geolocation = $geolocation_instance->geolocate_ip( $user_ip_address );

    // Disable payment gateways (except BACS) for all countries except the allowed defined countries
    if ( ! in_array( $user_geolocation['country'], $allowed_country_codes ) ){
        $bacs_gateways              = $available_gateways['bacs'];
        $available_gateways         = array();
        $available_gateways['bacs'] = $bacs_gateways;
    }

    return $available_gateways;
}

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

Связано: Отключить платежные шлюзы на основе гео-IP страны пользователя в Woocommerce

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