在WooCommerce结账感谢页添加Pinterest追踪代码:商品ID数组实现问题
解决WooCommerce结账感谢页Pinterest追踪的商品条目数组问题
以下是修改后的完整代码,已实现将订单商品的ID和名称转换为Pinterest所需的数组格式:
// Hook pinterest tracking to Thank you on checkout add_action( 'woocommerce_thankyou', 'rnr_pinterest_tracking', 1 ); function rnr_pinterest_tracking($order_id){ $order = wc_get_order( $order_id ); $order_total = $order->get_total(); $order_quantity = $order->get_item_count(); $line_items = $order->get_items(); // 初始化商品数组,存储Pinterest需要的商品信息 $pinterest_items = array(); foreach ( $line_items as $item ) { // 直接从订单条目获取商品ID和名称 $product_id = $item->get_product_id(); $product_name = $item->get_name(); // 如果需要商品分类,可取消以下注释并调整 // $product = $item->get_product(); // $primary_category_id = $product->get_category_ids()[0]; // $primary_category = get_term_by('id', $primary_category_id, 'product_cat')->name; // 将当前商品信息加入数组 $pinterest_items[] = array( 'product_id' => $product_id, 'product_name' => $product_name // 'product_category' => $primary_category // 需要分类则添加此行 ); } // Pinterest转化追踪代码 echo '<script> pintrk("track", "checkout", { value: '. $order_total .', order_quantity: '. $order_quantity .', currency: "USD", line_items: '. json_encode($pinterest_items) .' }); // 同步更新dataLayer(按需启用) dataLayer = [{ items : '. json_encode($pinterest_items) .' }]; </script>'; }
关键修改说明:
- 构建商品数组:循环前初始化空数组
$pinterest_items,每次遍历订单条目时,将单个商品的ID、名称(可选分类)存入数组。 - 简化信息获取:使用
$item->get_product_id()和$item->get_name()直接获取商品数据,替代已废弃的get_product_from_item()方法。 - 格式转换:通过
json_encode()将PHP数组转为JavaScript可识别的JSON字符串,确保数组结构符合Pinterest追踪要求。 - 参数嵌入:将转换后的数组直接赋值给Pinterest追踪代码的
line_items字段,同时可同步更新dataLayer的items数组。
内容的提问来源于stack exchange,提问作者AJD
相关产品推荐
相关产品推荐

