Woocommerce order-> get_data () генерирует PHP фатальную ошибку: Uncaught Error - PullRequest
0 голосов
/ 24 января 2019

У меня запущена функция, которая сначала проверяет, является ли тип записи 'shop_order', а если нет, то эту функцию запускать не следует.Я использую return;, чтобы завершить его, но когда я пытаюсь добавить новое сообщение в тип сообщения «продукт», я получаю следующую ошибку:

 PHP Fatal error:  Uncaught Error: Call to a member function get_data() on boolean in.. 

Почему это говорит о функции get_data()неучтенный?Этот код не должен выполняться до этой точки, если post_type не shop_order.Я даже распечатал $ post_type, который возвращает product.

function woocommerce_process_shop_order ( $post_id, $post, $update ) {

    if (isset($post->post_status) && 'auto-draft' == $post->post_status) {
      return;
    }
        // Autosave, do nothing
        if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
        return;
    }
        // AJAX? Not used here
        if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
        return;
    }
        // Check user permissions
        if ( ! current_user_can( 'edit_post', $post_id ) ) {
          return;
    }

    // don't run the echo if the function is called for saving revision.
    if ( $post->post_type == 'revision' ) {
       return;
    }

        $post_type = get_post_type($post_id);
    error_log( print_r( $post_type, true ) );

   // terminate early if post type is not 'post' and if we are updating post object and not creating it.
   if ( "shop_order" != $post_type && !$update ) {
       return;
       error_log( print_r( 'not shop order', true ) );
   }

  $is_new = $post->post_date === $post->post_modified;

  if ( $is_new ) {

    $order = wc_get_order( $post_id );
    $order_data = $order->get_data();

  }
}
...