在woocommerce感谢页面的head标签中插入javascript代码

jer*_*aig 5 javascript php wordpress orders woocommerce

我正在尝试向我的感谢页面添加一些 google 跟踪脚本。我已经编写了这段代码,它成功地将跟踪器注入到带有动态值的感谢中,但我需要将其添加到标签中。

function mv_google_conversion( $order_id ) {
    $order = new WC_Order( $order_id );
    $currency = $order->get_currency();
    $total = $order->get_total();
    ?>
    <script>
      gtag('event', 'conversion', {
          'send_to': 'AW-746876528/x5W1CLfA8JoBEPDckeQC',
          'value': <?php echo $total; ?>,
          'currency': '<?php echo $currency; ?>',
          'transaction_id': '<?php echo $order_id; ?>'
      });
    </script>
    <?php
  }
  add_action( 'woocommerce_thankyou', 'mv_google_conversion' );
Run Code Online (Sandbox Code Playgroud)

我将如何使用此代码以及 header.php 中的动态值,或者是否有针对 woocommerce 谢谢页面上的标签的钩子。

Loi*_*tec 7

您将使用以下内容在“收到订单”(谢谢)页面的头部标签上注入代码:

add_action( 'wp_head', 'my_google_conversion' );
function my_google_conversion(){
    // On Order received endpoint only
    if( is_wc_endpoint_url( 'order-received' ) ) :

    $order_id = absint( get_query_var('order-received') ); // Get order ID

    if( get_post_type( $order_id ) !== 'shop_order' ) return; // Exit

    $order = wc_get_order( $order_id ); // Get the WC_Order Object instance
    ?>
    <script>
      gtag('event', 'conversion', {
          'send_to': 'AW-746876528/x5W1CLfA8JoBEPDckeQC',
          'value': <?php echo $order->get_total(); ?>,
          'currency': '<?php echo $order->get_currency(); ?>',
          'transaction_id': '<?php echo $order_id; ?>'
      });
    </script>
    <?php   
    endif;
}
Run Code Online (Sandbox Code Playgroud)

代码位于活动子主题(或活动主题)的 functions.php 文件中。测试和工作。

  • @Garconis您忘记了挂钩优先级(默认情况下为10),因此您需要使用更高的数字来指定它,例如**`90000`**,因此在代码中:`add_action('wp_head','my_google_conversion', 90000 );`... **或者您也可以使用 `wp_footer` 挂钩代替**`wp_head`。...现在应该位于 Google Ads 全局网站标记之后。如果有效,您可以为这个答案点赞。 (2认同)