Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.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 在我的帐户编辑地址中显示来自客户订单的账单电子邮件_Php_Wordpress_Woocommerce_Metadata_Orders - Fatal编程技术网

Php 在我的帐户编辑地址中显示来自客户订单的账单电子邮件

Php 在我的帐户编辑地址中显示来自客户订单的账单电子邮件,php,wordpress,woocommerce,metadata,orders,Php,Wordpress,Woocommerce,Metadata,Orders,我想在每个订单上显示客户的元“电子邮件”,但这会抛出一个错误 add_action( 'woocommerce_before_edit_account_address_form', 'save_billing_email_to_user', 12, 1 ); function save_billing_email_to_user( $user_id ) { $query = new WC_Order_Query( array( 'custome

我想在每个订单上显示客户的元“电子邮件”,但这会抛出一个错误

add_action( 'woocommerce_before_edit_account_address_form', 'save_billing_email_to_user', 12, 1 );
function save_billing_email_to_user( $user_id ) {
    $query = new WC_Order_Query( 
        array( 
            'customer_id' => $user_id 
        )
    );
    $orders = $query->get_orders();
    foreach($orders as $ro => $inn){
             echo $ro['email'];
    }
}

我在这里做错了什么?

使用以下重新访问的代码查询一个订单以获取账单电子邮件:

add_action( 'woocommerce_before_edit_account_address_form', 'save_billing_email_to_user', 12 );
function save_billing_email_to_user( $user_id ) {
    $orders = wc_get_orders(  array( 'customer_id' => $user_id , 'limit' => '1' ) );
    if ( ! empty( $orders ) ) {
        $order = reset( $orders );
        $order_id      = $order->get_id();
        $billing_email = $order->get_billing_email();
        echo $billing_email;
    }
}
代码进入活动子主题(或活动主题)的functions.php文件。测试和工作


或者,您可以显示客户每个订单的账单电子邮件地址,如:

add_action( 'woocommerce_before_edit_account_address_form', 'save_billing_email_to_user', 12 );
function save_billing_email_to_user( $user_id ) {
    $orders = wc_get_orders(  array( 'customer_id' => $user_id ) );
    foreach( $orders as $order ){
        $order_id = $order->get_id();
        echo $order->get_billing_email() . '<br>';
    }
}
add_action('woocommerce_前_编辑_账户_地址_表单','save_账单_电子邮件_给_用户',12);
功能save_billing_email_to_user($user_id){
$orders=wc_get_orders(数组('customer_id'=>$user_id));
foreach($orders作为$order){
$order\u id=$order->get\u id();
echo$order->get_billing_email()。
; } }
谢谢。第一个解决方案有效。第二个是抛出wordpress错误。第二个解决方案更适合进一步定制。这是从上一个订单中获取电子邮件还是随机获取一个订单?接受。最后一个问题,如何在这里获取订单ID?要使用wc_update_order_item_meta($order_id,'computed_field',$calculatedValue)更新元字段;已在下面发布完整代码,请检查。由于限制,无法发布新问题。@Muhammaddnanbashir很抱歉,StackOverFlow的规则是一次一个问题(通过线程)。因此,请提出一个清晰而详细的新问题,提供您尝试过的代码。请删除下面的代码,因为这是答案,而不是问题。