Получить ВСЕ товары из магазина 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 из Кодекса.

2

Другие решения

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

0

По вопросам рекламы [email protected]