Получить ВСЕ товары из магазина WooCommerce

Я пытаюсь получить все продукты в моем интернет-магазине Woocommerce. Я хочу получить эти данные для всех продуктов и распечатать их как json. Но страница продолжает показываться пустой.

Ниже приведен список всех идентификаторов продуктов, чтобы все продукты отображались.

$args = array( 'post_type' => 'product', 'post_status' => 'publish', 'p' => '*');

Я также попробовал это:

    $args = array( 'post_type' => 'product', 'post_status' => 'publish', 'posts_per_page' => 470);

   $loop = new WP_Query( $args );

И это:

    $args = array( 'post_type' => 'product', 'post_status' => 'publish', 'posts_per_page' => -1);

   $loop = new WP_Query( $args );

Все они дают один и тот же результат: страница отображается пустой и не получает данных.

Я использовал подобный код, чтобы показать все продукты в определенной категории, и это сработало. Но я не могу заставить его работать, показать все продукты в магазине.

Пожалуйста, помогите?

2 ответа

WooCommerce 2.1+ теперь поставляется с собственным REST API. Вы обязательно должны проверить это. Обратите внимание, что вы должны использовать https или OAuth для доступа к нему, поэтому вы можете использовать такой клиент, как этот (я не связан с этой библиотекой).

Не ясно, какие данные вы хотите получить из своего магазина, но из приведенных выше настроек вы можете попробовать этот простой демонстрационный пример:

add_action( 'init', function() {
    add_rewrite_endpoint( 'wooexport', EP_ROOT );
});

add_action( 'template_redirect', function() {
    if( 'json' === get_query_var( 'wooexport' ) ) {
        $posts = get_posts( array( 'post_type' => 'product' ) ); 
        wp_send_json_success( $posts );
    }  
});

где вы должны помнить, чтобы сбросить правила перезаписи, например, путем повторного сохранения настроек постоянных ссылок. Затем вы можете изменить аргументы запроса в соответствии со своими потребностями и получить к нему доступ example.com/wooexport/json/,

Скорее всего, вы получили ошибку синтаксиса PHP, в результате чего белый экран?. Так что всегда используйте WP_DEBUG на вашем тестовом сайте проверьте, например, отладку в WordPress из Кодекса.

Я предложу вам использовать опцию экспорта в WordPress, чтобы получить данные с вашего текущего сайта, а затем использовать опцию импорта, чтобы получить данные на новом сайте, который вы хотите. Это просто не нужно никакого кодирования вообще.

Другие вопросы по тегам