Удалить из Woocommerce get_customer_location Ajax событие - PullRequest
2 голосов
/ 19 марта 2019

Я пытаюсь понять WordPress и WooCommerce.Как я могу удалить get_customer_location HTTP-вызов с моей главной страницы WordPress.

Запрос: https://www.example.com? Wc-ajax = get_customer_location

В настоящее время я используюэтот исходный код ниже:

function grd_woocommerce_script_cleaner() {

    // Remove the generator tag
    remove_action( 'wp_head', array( $GLOBALS['woocommerce'], 'generator' ) );
    // Unless we're in the store, remove all the cruft!
    if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() ) {
        wp_dequeue_style( 'woocommerce_frontend_styles' );
        wp_dequeue_style( 'woocommerce-general');
        wp_dequeue_style( 'woocommerce-layout' );
        wp_dequeue_style( 'woocommerce-smallscreen' );
        wp_dequeue_style( 'woocommerce_fancybox_styles' );
        wp_dequeue_style( 'woocommerce_chosen_styles' );
        wp_dequeue_style( 'woocommerce_prettyPhoto_css' );
        wp_dequeue_script( 'selectWoo' );
        wp_deregister_script( 'selectWoo' );
        wp_dequeue_script( 'wc-add-payment-method' );
        wp_dequeue_script( 'wc-lost-password' );
        wp_dequeue_script( 'wc_price_slider' );
        wp_dequeue_script( 'wc-single-product' );
        wp_dequeue_script( 'wc-add-to-cart' );
        wp_dequeue_script( 'wc-cart-fragments' );
        wp_deregister_script( 'wc-cart-fragments' );
        wp_dequeue_script( 'wc-credit-card-form' );
        wp_dequeue_script( 'wc-checkout' );
        wp_deregister_script( 'wc-checkout' );
        wp_dequeue_script( 'wc-add-to-cart-variation' );
        wp_dequeue_script( 'wc-single-product' );
        wp_dequeue_script( 'wc-cart' );
        wp_dequeue_script( 'wc-chosen' );
        wp_dequeue_script( 'woocommerce' );
        wp_deregister_script( 'woocommerce' );
        wp_dequeue_script( 'prettyPhoto' );
        wp_dequeue_script( 'prettyPhoto-init' );
        wp_dequeue_script( 'jquery-blockui' );
        wp_dequeue_script( 'jquery-placeholder' );
        wp_dequeue_script( 'jquery-payment' );
        wp_dequeue_script( 'fancybox' );
        wp_dequeue_script( 'jqueryui' );        
        wp_dequeue_script( 'cart-widget' );
        wp_deregister_script( 'cart-widget' );      
        wp_dequeue_script( 'wc-address-i18n-override' );
        wp_deregister_script( 'wc-address-i18n-override' );
    }
}
add_action( 'wp_enqueue_scripts', 'grd_woocommerce_script_cleaner', 99 );

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 19 марта 2019

Событие get_customer_location Ajax находится в WC_Ajax Класс и запускается функцией JS, расположенной в файле assets/js/frontend/geolocation.min.js.

Если вы посмотрите на WC_Frontend_ScriptsФайл класса , вам нужно отменить регистрацию этого скрипта, используя:

wp_dequeue_script( 'wc-geolocation' );
wp_deregister_script( 'wc-geolocation' );

и выполнить необходимые настройки для копии несжатого geolocation.js файла перед его регистрацией в Wordpress.

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