Вопрос: Подскажите какие sql запросы использует WooCommerce для полного добавления одного товара(с картинкой). Или есть ли способ отследить какие запросы прилетают к mysql от wordpress?
Ответ: Там не один запрос, а несколько, в разные таблицы. На прямую базу данных WooCommerce лучше не трогать, для это есть REST API WC.
# composer require automattic/woocommerce
<?php require __DIR__ . '/vendor/autoload.php'; use Automattic\WooCommerce\Client; $woocommerce = new Client( 'http://example.com', 'ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', [ 'wp_api' => true, 'version' => 'wc/v2', ] ); // Вывести все товары print_r($woocommerce->get('products')); ?>
Формат ответа по умолчанию - json. Запросы с помощью тела сообщений используют простой JSON для установки или обновления атрибутов ресурсов. Успешные запросы возвратят статус 200 OK HTTP.
Общая информация об ответах:
Как вывести все товары в WooCommerce - казалось бы тривиальный вопрос, но это не так просто. Для каждой версии API вывод всех товаров реализуется по разному.
Суть проблемы связана с пагинацией страниц, в последней версии по умолчанию выводится только 10 товаров. В документации предлагается для вывода всех товаров код PHP, но он выводит только 10
<?php print_r($woocommerce->get('products')); ?>
Много разных советов на просторах интернета, но у меня реально заработал код ниже, спасибо spartanz51. В коде задается массив, в котором указано вывести страницы от 1 до 100, если у вас больше 1000 товаров - увеличивайте ещё.
$page = 1; $res = $woocommerce->get('products',array('per_page' => 100, 'page' => $page));
WooCommerce вывести все товары принадлежащей категории с id 75.
print_r($wooeto->get('products', array('category' => '75', 'per_page' => '100')));
В этом случае выведется только часть товаров, так как не задан per_page
print_r($wooeto->get('products', array('category' => '75', 'orderby' => 'date')));