Обновление базы данных Wordpress при создании учетной записи клиента - PullRequest
0 голосов
/ 21 февраля 2020

Я управляю магазином 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' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...