Saya perlu mengarahkan ulang pelanggan dari Jerman ke halaman khusus jika mereka mencoba mengakses halaman produk dan saya sudah mulai menyusun sesuatu, tetapi saya tidak tahu bagaimana menyelesaikannya.

Inilah yang saya dapatkan:

add_action( 'do not know which hook to use', 'geo_origin_redirect' );
function geo_origin_redirect() {
        $location = WC_Geolocation::geolocate_ip();
        $country = $location['country'];

        $product_ids = array( 10, 20, 30 );
        $product_categories = array( 'makeup' );
        $redirection = false;

        // what to do here to make it check the product?
        if( in_array( $???->get_product_id(), $product_ids ) || has_term( $product_categories, 'product_cat', $???->get_product_id() ) ) {
        $redirection = true;
        break;
        }
    }
        if( $redirection && $country === 'Germany' ){
        wp_redirect( home_url( '/your-page/' ) );
        exit;
    }
}

Bantuan apa pun dihargai.

2
user11877264 12 Agustus 2019, 21:08

1 menjawab

Jawaban Terbaik

Anda dapat menggunakan template_redirect kait WordPress khusus, dengan cara ini:

add_action( 'do not know which hook to use', 'geo_origin_redirect' );
function geo_origin_redirect() {
    // Only on single product pages and "Germany" geolocated country
    if ( ! ( is_product() && WC_Geolocation::geolocate_ip()['country'] === 'GE' ) )
        return;

    $product_ids        = array( 10, 20, 30 );
    $product_categories = array( 'makeup' );
    $redirection_url    = home_url( '/your-page/' );

    if( in_array( get_the_id(), $product_ids ) || has_term( $product_categories, 'product_cat' ) ) {
        wp_redirect( $redirection_url );
        exit;
    }
}

Kode masuk ke file functions.php dari tema anak aktif Anda (atau tema aktif). Diuji dan berfungsi.

1
LoicTheAztec 12 Agustus 2019, 20:20