在 WooCommerce 中为 Google 客户评论计划实施产品评论

问题描述

我正在尝试使用谷歌商家选择评论代码为我的网站申请产品评论

我成功地完成了国家、日期、身份证和电子邮件的部分..

现在我没有成功从代码获取 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
}

它应该可以工作。