Получите подробную информацию о продукте, недавно добавленном в корзину в WooCommerce, и запустите событие добавления в корзину Google Analytics

#woocommerce #hook-woocommerce

Вопрос:

Цель — Я пытаюсь запустить скрипт Google Analytics с помощью functions.php когда товар успешно добавлен в корзину.

Проблема — Не удается получить подробную информацию о товаре, добавленном в корзину.

Что я пробовал — я попытался добавить следующий код в functions.php чтобы понять, правильно ли я понимаю детали. Но сценарий, похоже, не работает.

 add_action('woocommerce_add_to_cart', 'custom_add_to_cart', 10, 6);
function custom_add_to_cart($cart_item_key,$product_id,$quantity,$variation_id,$variation,$cart_item_data
) {
?>
    <script>
        console.log("<?php echo 'Product ID ' . $product_id; ?>");
        console.log("<?php echo 'Quantity ' . $quantity; ?>");
        console.log("<?php echo 'Variation ID ' . $variation_id; ?>");
        console.log("<?php echo 'Product ' . $variation; ?>");
        console.log("<?php echo 'Cart Data ' . $cart_item_data; ?>");
    </script>
<?php
}
 

Если проблема будет решена — как только я успешно получу подробную информацию в консоли, я передам значения в следующем сценарии Google Analytics

 gtag('event', 'add_to_cart', {
  "items": [
    {
      "id": "P12345",//Will be replaced by product id
    }
  ]
});
 

Комментарии:

1. Читать это — Документы. woocommerce.com/document/google-analytics-integration

2. Большое спасибо, Мартин, проверю. Ценю вашу помощь.

Ответ №1:

Как я нашел решение и как оно сработало для меня

1. Я выяснил, что всякий раз, когда товар добавляется в корзину, сайт автоматически перенаправляется на страницу корзины.

2. Затем я понял, что последний добавленный товар добавляется последним в массив товаров, что заставило меня использовать страницу корзины для запуска добавления в корзину вместо самой страницы корзины.

3. Я использовал крючок Woocommerce, доступный на странице корзины, а затем нашел последний товар в массиве корзины.

4. Затем я вроде как закончил и запустил PHP-скрипт, чтобы событие Google Analytics можно было разместить в HTML.

5. Теперь я понял, что некоторые люди могут нажать на корзину, и страница корзины все равно вызовет событие добавления товара в корзину. Поэтому я добавил простое утверждение IF для запуска кода события Google analytics только в том случае, если отправитель не является страницей корзины.

 add_action( 'woocommerce_before_cart_contents', 'google_analytics_custom_add_to_cart');
function google_analytics_custom_add_to_cart() {
    $prod_ids = array(); 
    global $woocommerce;
    $prods = $woocommerce->cart->get_cart();
    $custom_last_item_index= count($prods)-1;
    // loop products
    foreach($prods as $p => $values) { 
        $product_detail =  wc_get_product( $values['data']->get_id());
        array_push($prod_ids, $product_detail->get_id());
    }
    ?>
        <script>
            // understand the referrer
            if(document.referrer!="https://websitename/cart/"){
                gtag('event', 'add_to_cart', {
                  "items": [
                    {
                      "id": "<?php echo $prod_ids[$custom_last_item_index] ;?>",
                    }
                  ]
                });
            }
        </script>
    <?php
}
 

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