Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 即使未注册,也在WooCommerce感谢页面上显示客户详细信息_Php_Wordpress_Templates_Woocommerce_Orders - Fatal编程技术网

Php 即使未注册,也在WooCommerce感谢页面上显示客户详细信息

Php 即使未注册,也在WooCommerce感谢页面上显示客户详细信息,php,wordpress,templates,woocommerce,orders,Php,Wordpress,Templates,Woocommerce,Orders,在WooCommerce中,对于登录用户,Thankyu(order received)页面确实会显示客户的详细信息,如姓名、地址和电子邮件,但如果客户未注册,则不会显示任何信息。 我如何确保非注册用户在成功完成付款后可以在Thankyu(order received)页面上看到他们的详细信息,就像注册用户一样 为什么非注册用户的客户详细信息没有显示在感谢(已收到订单)页面上?您可以使用以下代码更改非登录用户的此行为: add_action( 'woocommerce_thankyou', 'a

在WooCommerce中,对于登录用户,Thankyu(order received)页面确实会显示客户的详细信息,如姓名、地址和电子邮件,但如果客户未注册,则不会显示任何信息。

我如何确保非注册用户在成功完成付款后可以在Thankyu(order received)页面上看到他们的详细信息,就像注册用户一样


为什么非注册用户的客户详细信息没有显示在感谢(已收到订单)页面上?

您可以使用以下代码更改非登录用户的此行为:

add_action( 'woocommerce_thankyou', 'adding_customers_details_to_thankyou', 10, 1 );
function adding_customers_details_to_thankyou( $order_id ) {
    // Only for non logged in users
    if ( ! $order_id || is_user_logged_in() ) return;

    $order = wc_get_order($order_id); // Get an instance of the WC_Order object

    wc_get_template( 'order/order-details-customer.php', array('order' => $order ));
}
代码位于活动子主题(或主题)的function.php文件或任何插件文件中

测试和工作

客户信息没有显示可能是出于安全原因,因为该信息没有得到真正的保护,与登录用户(注册用户)的保护方式相同


谢谢你,伙计!它起作用了!!你怎么知道这个钩子的?在哪里可以了解更多信息?@CalvinK On woocommerce templates
checkout/thankyou.php
您将看到这个钩子。模板
order/order details customer.php
是用于客户详细信息输出的模板(需要$order对象以正确的方式工作)…仅此而已:)hi@LoicTheAztec这仅适用于登录用户,但如果是来宾用户,则不会加载模板。有什么想法吗?@nyjn24 Normal这只对登录用户执行…所以只需删除
| | is_user_logged_in()