Я управляю магазином WooCommerce с поддержкой нескольких поставщиков. Клиенты могут оформлять покупки или отправлять сообщения продавцам, не входя в систему (они должны ввести адрес электронной почты), но я хочу, чтобы они задним числом возвращали свои заказы / запросы при создании учетной записи.
Я использую функцию WooCommerce wc_update_new_customer_past_orders ( ) и хук woocommerce_created_customer для связи прошлых заказов с их новой учетной записью, которая работает. Но не могу заставить это работать для запросов.
Код, который я использую ниже, хорошо работает, используя хук wp_footer на странице refre sh, но не на woocommerce_created_customer. Есть идеи?
function link_past_enquiries_at_registration( ) {
global $wp, $WCFM, $wpdb;
$linked = 0;
$user_id = get_current_user_id();
$customer = get_user_by( 'id', $user_id );
$customer_email = $customer->user_email;
$enquiry_query = "SELECT * FROM {$wpdb->prefix}wcfm_enquiries AS commission";
$enquiry_query .= " WHERE 1 = 1";
$enquiry_query .= " AND `customer_id` = 0";
$enquiry_query .= " AND `customer_email` = '$customer_email'";
$enquiry_query .= " ORDER BY commission.`ID` DESC";
$wcfm_inqueries = $wpdb->get_results( $enquiry_query );
if( !empty( $wcfm_inqueries ) ) {
$wpdb->update( $wpdb->prefix . 'wcfm_enquiries', array('customer_id'=>$user_id), array('customer_email'=>$customer_email, 'customer_id'=>0) );
$linked++;
}
}
add_action( 'woocommerce_created_customer', 'link_past_enquiries_at_registration' );