WordPress обновление мета для акций Woocommerce - PullRequest
0 голосов
/ 09 мая 2018

Мне нужно сбросить все акции в woocommerce на outofstock. Или установите запас по всем продуктам на ноль. Один или другой. Не имеет значения.

Я уже написал это.

function clear_current_stock(){ 
    $sql = "UPDATE wp_postmeta SET meta_value = 'outofstock' WHERE meta_value = 'instock' AND meta_key = '_stock_status'";
    // run queries
    if ($wpdb->query( $sql ) === TRUE) {
        echo "Record updated successfully";
    } else {
        echo "Error updating record";
    }
}

И я назвал такую ​​функцию. (Просто чтобы проверить и убедиться, что он работает)

   <?php clear_current_stock(); ?>

Но функция ничего не делает. Пожалуйста, помогите.

есть похожий вопрос здесь .

Но мне это не помогло.

Что мне нужно для готового куска кода. Это нажать кнопку, которая вызывает эту функцию. затем устанавливает все сообщения типа продукта на нулевой запас. или outofstock

1 Ответ

0 голосов
/ 10 мая 2018

Мой процесс до ответа.

Сначала я зашел в рабочую среду MYSQL и запустил запрос в рабочей среде. Это показало мне, что при выборе базы данных произошла ошибка.

Я исправил свой sql-запрос, чтобы он работал в MYSQL-среде. Затем я продолжил свою функцию.

Я обнаружил, что в своей функции я не объявлял свою переменную.

Сначала мне пришлось объявить мою переменную, чтобы $ wpdb работал. Что, как показано выше, не было сделано.

Это последняя функция, работающая на 100%

// Clear Stock
function clear_current_stock(){ 
// Declare the $wpdb var
    global $wpdb;
// Run My SQL Query (My Query is setting the meta value for stock to zero)
    $wpdb->query("UPDATE wp_postmeta SET meta_value = 0 WHERE meta_key = '_stock'");
// Check if there were any errors or if my query was successful.
    if ( is_wp_error( $wpdb ) ) {
         echo $wpdb->get_error_message();
    }
    else {
         echo 'true';
    }
}

Тогда вам просто нужно вызывать функцию где угодно или когда вы захотите выполнить запрос. Это можно сделать так.

<?php clear_current_stock(); ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...