Esempio n. 1
0
 /**
  * Get customer details via ajax.
  */
 public static function get_customer_details()
 {
     check_ajax_referer('get-customer-details', 'security');
     if (!current_user_can('edit_shop_orders')) {
         die(-1);
     }
     $user_id = absint($_POST['user_id']);
     $customer = new WC_Customer($user_id);
     $customer_data = apply_filters('woocommerce_found_customer_details', $customer->get_data(), $user_id);
     wp_send_json($customer_data);
 }
 /**
  * Prepare a single customer output for response.
  *
  * @param WP_User           $user_data User object.
  * @param WP_REST_Request   $request   Request object.
  * @return WP_REST_Response $response  Response data.
  */
 public function prepare_item_for_response($user_data, $request)
 {
     $customer = new WC_Customer($user_data->ID);
     $data = $customer->get_data();
     $format_date = array('date_created', 'date_modified');
     // Format date values.
     foreach ($format_date as $key) {
         $data[$key] = $data[$key] ? wc_rest_prepare_date_response(get_gmt_from_date(date('Y-m-d H:i:s', $data[$key]))) : null;
     }
     // Remove unwanted CRUD data.
     unset($data['role']);
     // Additional non-crud data.
     $data['last_order'] = null;
     $data['orders_count'] = $customer->get_order_count();
     $data['total_spent'] = $customer->get_total_spent();
     $data['avatar_url'] = $customer->get_avatar_url();
     if ($last_order_data = $customer->get_last_order()) {
         $data['last_order'] = array('id' => $last_order_data->get_id(), 'date' => $last_order_data->get_date_created() ? wc_rest_prepare_date_response($last_order_data->get_date_created()) : null);
     }
     $context = !empty($request['context']) ? $request['context'] : 'view';
     $data = $this->add_additional_fields_to_object($data, $request);
     $data = $this->filter_response_by_context($data, $context);
     $response = rest_ensure_response($data);
     $response->add_links($this->prepare_links($user_data));
     /**
      * Filter customer data returned from the REST API.
      *
      * @param WP_REST_Response $response   The response object.
      * @param WP_User          $user_data  User object used to create response.
      * @param WP_REST_Request  $request    Request object.
      */
     return apply_filters('woocommerce_rest_prepare_customer', $response, $user_data, $request);
 }