Неустранимая ошибка при добавлении данных транзакции на уровень данных на странице благодарности Woocommerce

#php #wordpress #woocommerce

#php #wordpress #woocommerce

Вопрос:

Я добавляю код уровня данных в header.php файл для отправки данных транзакции в Google Analytics. Когда я добавляю приведенный ниже код в файл заголовка, я получаю эту ошибку:

Неустранимая ошибка: неперехваченная ошибка: вызов функции-члена get_order_number() в строке в /home/site/public_html/XXX.com/wp-content/themes/nature/header.php:52

 <!-- Transaction Data Layer -->
<?php if (is_order_received_page()): ?>
$order = wc_get_order( $order_id );
$products = $order->get_items();
?>
<script>
  dataLayer.push({
      'ecommerce': {
        'currencyCode': 'US',
        'purchase': {
          'actionField':{
            'id': '<?php echo $order->get_order_number(); ?>',
            'affiliation': 'GEW',
            'revenue': <?php echo number_format($order->get_subtotal(), 2, ".", ""); ?>,
            'tax': <?php echo number_format($order->get_total_tax(), 2, ".", ""); ?>,
            'shipping': <?php echo number_format($order->calculate_shipping(), 2, ".", ""); ?>,
            <?php if($order->get_used_coupons()): ?>
                'coupon': '<?php echo implode("-", $order->get_used_coupons()); ?>'
            <?php endif; ?>
          },
          'products': [
              <?php
                foreach($order->get_items() as $key => $item):
                  $product = $order->get_product_from_item( $item );
                  $variant_name = ($item['variation_id']) ? wc_get_product($item['variation_id']) : '';
              ?>
                  {
                    'name': '<?php echo $item['name']; ?>',
                    'id': '<?php echo $item['product_id']; ?>',
                    'price': '<?php echo number_format($order->get_line_subtotal($item), 2, ".", ""); ?>',
                    'brand': 'N',
                    'category': '<?php echo strip_tags($product->get_categories(', ', '', '')); ?>',
                    'variant': '<?php echo ($variant_name) ? implode("-", $variant_name->get_variation_attributes()) : ''; ?>',
                    'quantity': <?php echo $item['qty']; ?>
                  },
              <?php endforeach; ?>
            ]
        }
      }
  });
</script>
  

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

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

2. Это связано не с вашим кодом, а с плагином authnet-cim-for-woo…

3. Я обновил код и ошибку. Я вставил неправильную ошибку и код.