• ДОБРО ПОЖАЛОВАТЬ В КЛУБ ПО WORDPRESS

    Мы активно растущий клуб по WordPress и нам нужна помощь каждого человека, в том числе и Ваша! Не стесняйтесь и станьте частью большого сообщества.
    Мы делимся новостями, отытом и полезными советами! Пройдите простую регистрацию, чтобы пользоваться всеми возможностями нашего клуба.

    Присоединяйтесь к нам, вам обязательно понравится - Присоединится

Вопрос Перебрать все товары woocommerce в цикле

shsa

НОВИЧОК

shsa

НОВИЧОК
Сообщения
3
Добрый день, подскажите ..мучаюсь уже несколько дней. Нужен цикл, чтобы перебрать все товары woocommerce, а в цикле
// в зависимости от наличия товара на складе в Москве...
if ( $moscow_text_field == 'Да' ) {
$product->set_backorders( 'notify' );
} else {
$product->set_backorders( 'no' );
} */
$product->save();
Вот такой код....пробовал много циклов все зависают. То есть нужно во всех товарах установить можно предзаказ или нет в зависимости от кастомного поля...
 

Di Ost

WP шаман
СВОЙ

Di Ost

WP шаман
СВОЙ
Сообщения
272
Добрый день, подскажите ..мучаюсь уже несколько дней. Нужен цикл, чтобы перебрать все товары woocommerce, а в цикле
// в зависимости от наличия товара на складе в Москве...
if ( $moscow_text_field == 'Да' ) {
$product->set_backorders( 'notify' );
} else {
$product->set_backorders( 'no' );
} */
$product->save();
Вот такой код....пробовал много циклов все зависают. То есть нужно во всех товарах установить можно предзаказ или нет в зависимости от кастомного поля...
Подскажите, на какой именно странице Вы пытаетесь список товаров ? на кастомной или прям в самом плагине ?
 

Di Ost

WP шаман
СВОЙ

Di Ost

WP шаман
СВОЙ
Сообщения
272
P.S. Вот обычный цикл перебора Всех (!) товаров и сортировка, на наличие\отсутсвие:
PHP:
$args = array(
    'post_type' => 'product',
    'posts_per_page' => -1,
);

$products = new WP_Query($args);

if ($products->have_posts()) {
    while ($products->have_posts()) {
        $products->the_post();

        global $product;

        // Получаем объект товара
        $product_object = wc_get_product(get_the_ID());

        // Проверяем наличие товара на складе
        if ($product_object->is_in_stock()) {
            // Товар есть на складе
            echo 'Товар ' . get_the_title() . ' есть на складе.';
        } else {
            // Товара нет на складе
            echo 'Товар ' . get_the_title() . ' отсутствует на складе.';
        }
    }

    wp_reset_postdata();
}
Вот более продвинутый вариант, который уже в запросе просит показать только те товары, у которых казанное поле с нужным значением, без необходимости проходить по всем товарам и выполнять отдельную проверку:
PHP:
$args = array(
    'post_type' => 'product',
    'posts_per_page' => -1,
    'meta_query' => array(
        array(
            'key' => '_stock_status', // Мета ключ для статуса наличия товара на складе
            'value' => 'instock', // Значение статуса "в наличии"
            'compare' => '=', // Сравнение значения
        ),
    ),
);

$products = new WP_Query($args);

if ($products->have_posts()) {
    while ($products->have_posts()) {
        $products->the_post();

        // Ваш код для вывода информации о товаре
    }

    wp_reset_postdata();
}
 

Топ поддержки


Сверху