我是woocommerce
的新手,我想在wordpress中创建一个模板,当客户输入email ID
时,在提交此电子邮件ID后,系统会显示该电子邮件发出的所有订单ID
问题是How can I search All order list by that email ID ?
答案 0 :(得分:0)
请尝试以下代码:
这里使用了一个短代码来调用和显示输出。因此,用户[wdm__customer_orders]
会对您的数据进行短代码和替换。
add_shortcode('wdm__customer_orders', 'wmd_my_custom_function');
function wmd_my_custom_function(){
$user_email=/*email id of your choice for which you want to list out orders*/;
$user_info=get_user_by( 'email', $user_email );
$user_id=$user_info->ID;
print_r(get_meta_values('_customer_user',$user_id));
}
function get_meta_values( $key = '', $user_id = '' ) {
global $wpdb;
if( empty( $key ) )
return;
$r = $wpdb->get_col( $wpdb->prepare( "
SELECT pm.post_id FROM {$wpdb->postmeta} pm
LEFT JOIN {$wpdb->posts} p ON p.ID = pm.post_id
WHERE pm.meta_key = '%s' AND pm.meta_value = '%s'
", $key,$user_id ) );
return $r;
}
使用此功能检索用户的订单ID列表。
这是出于测试目的,您应该根据需要进行更改和集成。