首页 > 解决方案 > 为“DIV ID”分配一个值。(WooCommerce)

问题描述

这个论坛的新手,也是编码的新手,所以请多多包涵,因为这可能是对我问题的简单回答!

我有以下代码,它会在订单确认时弹出一个用户评分窗口。弹出窗口很好,但没有填充值。

我需要的值是:电子邮件、订单号和下订单的日期(不需要时间,只需 YYYY-MM-DD 中的日期格式)。

当我回显这些值时,它们是正确的。由于某种原因,只有日期没有被填充,这是我的第一个问题。

如果我在分配 Div Id 值时对值进行硬编码,它可以正常工作,但它不能自行正确提取数据。即 user@email.com()

任何帮助,将不胜感激。

这是我在互联网上找到的代码并尝试了各种组合但失败了!

add_action( ‘woocommerce_order_details_after_order_table’, ‘trusted_shops_thankyou’, 15, 1 );
function trusted_shops_thankyou( $order ) {

echo $order->get_billing_email();
echo $order->get_order_number();
echo $order->get_date_completed();

// I need to fill the following DIVs
echo ‘
    <div id=”ratingvalues” style=”display: none;”&gt;
        <div id=”rating_ordermail”&gt;echo $order->get_billing_email()</div>
        <div id=”rating_ordernumber”&gt;echo $order->get_order_number()</div>
        <div id=”rating_orderdate”&gt;echo $order->get_date_completed()</div>
    </div>
    ‘;
}

标签: csswordpresswoocommercehook-woocommerce

解决方案


  1. 首先,你的代码中包含错误的单引号(')和双引号(")
  2. div你使用一些 css display: none;,. 这将隐藏div
  3. WC_Order get_date_completed()如果订单已完成一次,该方法将给出一个日期,因此如果商店经理将状态从“已完成”更改为“处理中”,$order->get_date_completed()则将给出一个日期。

那么你得到:

// Display in "Order received" and "Order view" pages (frontend)
function trusted_shops_thankyou( $order ) {
    // Getters
    $order_billing_email = $order->get_billing_email();
    $order_number = $order->get_order_number();
    $order_date_completed = $order->get_date_completed();

    // I need to fill the following DIVs
    echo '
    <div id="ratingvalues">
        <div id="rating_ordermail">' . $order_billing_email . '</div>
        <div id="rating_ordernumber">' . $order_number . '</div>
        <div id="rating_orderdate">' . $order_date_completed . '</div>
    </div>';
}
add_action( 'woocommerce_order_details_after_order_table', 'trusted_shops_thankyou', 10, 1 );

推荐阅读