在woocommerce中搜索所有带有电子邮件ID的订单

时间:2015-07-09 05:48:02

标签: wordpress woocommerce

我是woocommerce的新手,我想在wordpress中创建一个模板,当客户输入email ID时,在提交此电子邮件ID后,系统会显示该电子邮件发出的所有订单ID

问题是How can I search All order list by that email ID ?

1 个答案:

答案 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列表。

这是出于测试目的,您应该根据需要进行更改和集成。