Избегайте загрузки скрипта на странице благодарности Woocommerce

В Woocommerce я использую Плагин верхнего и нижнего колонтитула, чтобы добавить в тег body партнерский код отслеживания для всего сайта.

Код такой:

<script async src = "//go.linkwi.se/delivery/js/tl.js"></script>
<script>
window.lw=window.lw||function(){(lw.q=lw.q||[]).push(arguments)};lw.l=+new Date;
lw("setProgram", "12838");
lw("setDecimal", ".");
</script>

Мой аффилированный партнер попросил меня отключить код на странице благодарности woocommerce (согласно изображению - строки с 935 по 940).

Исходный код страницы благодарности woocommerce:

Избегайте загрузки скрипта на странице благодарности Woocommerce

Я думаю, мне нужно действие add_filter или что-то еще, чтобы отключить его.

Для этого пригодится любая помощь.

Обновлено: Если я удалю код из Header & Footer, плагин будет отключен для всего сайта.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
400
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

У вас есть 2 варианта:

1) В нижнем колонтитуле (думаю, лучший выбор):

add_action( 'wp_footer' , 'linkwi_delivery_script' );
function linkwi_delivery_script(){
    // Not on thankyou page
    if ( is_wc_endpoint_url('order-received') ) return;
    ?>
    <script async src = "//go.linkwi.se/delivery/js/tl.js"></script>
    <script>
    window.lw=window.lw||function(){(lw.q=lw.q||[]).push(arguments)};lw.l=+new Date;
    lw("setProgram", "12838");
    lw("setDecimal", ".");
    </script>
    <?php
}

2) В заголовке:

add_action( 'wp_head' , 'linkwi_delivery_script' );
function linkwi_delivery_script(){
    // Not on thankyou page
    if ( is_wc_endpoint_url('order-received') ) return;
    ?>
    <script async src = "//go.linkwi.se/delivery/js/tl.js"></script>
    <script>
    window.lw=window.lw||function(){(lw.q=lw.q||[]).push(arguments)};lw.l=+new Date;
    lw("setProgram", "12838");
    lw("setDecimal", ".");
    </script>
    <?php
}

Код находится в файле function.php вашей активной дочерней темы (или активной темы). Должно сработать.

Отлично, друг мой !!! Оно работает. Я удаляю скрипт из плагина Header & Footer и добавляю ваш код в funcrion.php моей дочерней темы.

Andreas Masialas 13.09.2018 13:41

Итак, наконец, мой код в дочерней функции function.php выглядит так.

// Utility function that contain Linkwise Affiliate script
function linkwise_affiliate_scripts( $order_id ){

    ## --- YOUR SETTINGS START BELOW --- ##

    $program_id  = '12838'; // <== Your program number
    $decimal_sep = '.';     // Decimal separator
    $currency    = '978';   // For "EUR" => See: https://en.wikipedia.org/wiki/ISO_4217

    ## --- END SETTINGS --- ##

    $order        = wc_get_order( $order_id );
    $order_status = $order->get_status();
    $items_string = array();
    $count        = 0;

    ?>
    <script async src = "//go.linkwi.se/delivery/js/tlwt.js"></script>
    <script>
    window.lw=window.lw||function(){(lw.q=lw.q||[]).push(arguments)};
    lw .l=+new Date;
    lw("setProgram", "<?php echo $program_id; ?>");
    lw("setDecimal", "<?php echo $decimal_sep; ?>");
    </script>
    <script>

        lw("setCurrency", "<?php echo $currency; ?>"); // Set your currency
        <?php
            foreach( $order->get_items() as $item ):
                $count++;
                $item_id        = $item->get_id(); // The item ID

                // Get an instance of the WC_Product object
                $product        = $item->get_product();
                $product_id     = $item->get_product_id(); // Product ID
                $price_excl_vat = wc_get_price_excluding_tax( $product ); // Unit price excluding VAT
                $item_qty       = $item->get_quantity(); // Item quantity
                $payout         = '1'; // (???)

                // The string for the <noscript> at the bottom
                $items_string[] = "itemid[$count]=$item_id&amp;itemprice[$count]=$price_excl_vat&amp;itemquantity[$count]=$item_qty&a
        mp;itempayout[$count]=$payout";

        ?>
        lw("addItem", {
            id: "<?php echo $item_id; // Or can be the product ID (may be) ?>"
            ,price: "<?php echo $price_excl_vat; ?>"
            ,quantity: "<?php echo $item_qty; ?>"
            ,payout: "<?php echo $payout; ?>"
        });
        <?php
            endforeach;

            // Set the array of items strings in a unique string
            $items_string = implode( '&amp;', $items_string );
        ?>
        // Other items types
        <?php
            $coupon_discounts = $coupon_discounts_tax = 0;
            foreach( $order->get_items('coupon') as $item_coupon ){
                $coupon_discounts     += $item_coupon->get_discount();
                $coupon_discounts_tax += $item_coupon->get_discount_tax();
            }
        ?>
        lw("setCoupon", "<?php echo $coupon_discounts; ?>");
        lw("thankyou", {
            orderid: "<?php echo $order_id; ?>"
            ,status: "<?php echo $order_status; ?>"
        });
    </script>
    <noscript>
        <img
        src = "//go.linkwi.se/delivery/acl.php?program=<?php echo $program_id; ?>&amp;decimal=<?php echo $decimal_sep; ?>&amp;<?php echo $items_string; ?>&amp;coupon_price=<?php echo $coupon_discounts; ?>&amp;status=<?php echo $order_status; ?>&amp;orderid=<?php echo $order_id; ?>" style = "width:0px;height:0px;"/>
    </noscript>
    <?php echo 'test';
}

add_filter( 'wp_footer', 'wc_linkwise_affiliate_order_received_integration' );
function wc_linkwise_affiliate_order_received_integration() {
    if ( ! is_wc_endpoint_url( 'order-received' ) )
        return; // Exit

    global $wp;

    $order_id  = absint( $wp->query_vars['order-received'] );
    if ( empty($order_id) || $order_id == 0 )
        return; // Exit

    linkwise_affiliate_scripts( $order_id ); // Run the Linkwise Affiliate
}

add_action( 'wp_footer' , 'linkwi_delivery_script' );
function linkwi_delivery_script(){
    // Not on thankyou page
    if ( is_wc_endpoint_url('order-received') ) return;
    ?>
    <script async src = "//go.linkwi.se/delivery/js/tl.js"></script>
    <script>
    window.lw=window.lw||function(){(lw.q=lw.q||[]).push(arguments)};lw.l=+new Date;
    lw("setProgram", "12838");
    lw("setDecimal", ".");
    </script>
    <?php
}

Другие вопросы по теме