问题描述
我成功地完成了国家、日期、身份证和电子邮件的部分..
现在我没有成功从代码中获取 EAN 或 GTIN 编号以应用于产品评论...
你能帮忙吗?
这是代码.. 上面描述的已经可以工作了,它只是错过了每个产品的 woocommerce 内部 gtin 的连接......
我基本上不知道如何获得gtin。
包含两个产品的示例网址:
function wh_CustomreadOrder($order_id) {
//getting order object
$order = wc_get_order($order_id);
$email = $order->billing_email;
$date_created = $order->get_date_created();
$days = 7; // Add days
$estimated_delivery_date = date_i18n( 'Y-m-d',strtotime( $date_created ) + ( $days * 24 * 60 * 60 ) );
$shipping_country = $order->get_shipping_country();
$GTIN1 = $order->product_gtin;
//$GTIN2 = $order->item_Meta_lable;
?>
<script src="https://apis.google.com/js/platform.js?onload=renderOptIn" async defer></script>
<script>
window.renderOptIn = function () {
window.gapi.load('surveyoptin',function () {
window.gapi.surveyoptin.render(
{
"merchant_id": 296683478,"order_id": "<?PHP echo $order_id; ?>","email": "<?PHP echo $email; ?>","delivery_country": "<?PHP echo $shipping_country; ?>","estimated_delivery_date": "<?PHP echo $estimated_delivery_date; ?>","products": [{"gtin":"<?PHP echo $GTIN1; ?>"},{"gtin":"<?PHP echo $GTIN2; ?>"}]
}
);
});
};
</script>
<?PHP
}
add_action('woocommerce_thankyou','wh_CustomreadOrder');
示例页面:https://gardentoy.com.br/finalizar-compra/order-received/2943/?key=wc_order_oOsii3Cuy6HWI
解决方法
首先,您需要在 wp_postmeta 表中检查用于产品(任何产品 ID)的 GTIN 元密钥。
我重新审视了您的代码,因为自 WooCommerce 3 以来出现了一些错误……尝试以下操作:
add_action('woocommerce_thankyou','wh_custom_read_order');
function wh_custom_read_order($order_id) {
$order = wc_get_order( $order_id ); // Get the order object
$days = 7; // Add days
$billing_email = $order->get_billing_email();
$date_created = $order->get_date_created();
$estimated_delivery_date = date_i18n( 'Y-m-d',$date_created->getTimestamp() + ( $days * 24 * 60 * 60 ) );
$shipping_country = $order->get_shipping_country();
$gtin_data = array(); // Initializing
// Loop through order items
foreach ( $order->get_items() as $item ) {
$product = $item->get_product();
$gtin = $product->get_meta('_wpm_gtin_code'); // Check that '_wpm_gtin_code' is the corect product meta key to get the GTIN
$gtin_data[] = '{"gtin":"'.$gtin.'"}';
}
?>
<script src="https://apis.google.com/js/platform.js?onload=renderOptIn" async defer></script>
<script>
window.renderOptIn = function () {
window.gapi.load('surveyoptin',function () {
window.gapi.surveyoptin.render({
"merchant_id": 296683478,"order_id": "<?php echo $order_id; ?>","email": "<?php echo $billing_email; ?>","delivery_country": "<?php echo $shipping_country; ?>","estimated_delivery_date": "<?php echo $estimated_delivery_date; ?>","products": [<?php echo implode( ',',$gtin_data ); ?>]
});
});
};
</script>
<?php
}
它应该可以工作。