Обновить цены перед загрузкой магазина/списка товаровPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Обновить цены перед загрузкой магазина/списка товаров

Сообщение Anonymous »

В настоящее время я разрабатываю сайт для торговой/оптовой компании, которая предлагает своим клиентам различные скидки (всего около 30 групп скидок).

Я использую WordPress / woocommerce.

У меня есть доступ к прайс-листу каждого клиента через веб-сервис, который я успешно интегрировал.

В настоящее время я получаю цену и обновляю woocommerce с помощью хука 'woocommerce_before_shop_loop'.

Проблема, с которой я столкнулся, заключается в том, что если все текущие цены в woocommerce установлены на уровне 1,00 доллара США, но цена, которую платит текущий клиент, составляет 2,00 доллара США при первой загрузке страницы. говорит 1,00 доллара, пока он не будет перезагружен.

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

Код: Выделить всё

function t31_before_shop_list_call() {
if ( is_user_logged_in()) {
$Conn = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);

$itemCodesArray = array(); // WILL CONTAIN ARRAY OF SKU's FOR WS

while (have_posts()) : the_post();
global $product;

if( $product->is_type( 'simple' ) ){

$sku = get_post_meta( get_the_ID(), '_sku', true );
array_push($itemCodesArray, $sku);

} elseif( $product->is_type( 'variable' ) ){

$child_ids = $product->get_children();
foreach ($child_ids as $child_id) {
$sku = get_post_meta( $child_id, '_sku', true );
array_push($itemCodesArray, $sku);

}

}

endwhile;

... RUN WEBSERVICE THAT GETS CLIENTS PRICES FOR THE

... RUN THROUGH EACH PRODUCT RETURNED IN WEBSERVICE AND EXEC FOLLOWING UPDATE

UPDATE wp_postmeta
SET meta_value = " . $GDUSproduct_price . "
WHERE post_id = " . $GDUSproduct_id . "
AND meta_key = '_regular_price';";

DELETE
FROM `wp_options`
WHERE (`option_name` LIKE '_transient_wc_var_prices_%'
OR  option_name` LIKE '_transient_timeout_wc_var_prices_%')";

}

}
add_action( 'woocommerce_before_shop_loop', 't31_before_shop_list_call', 15 );
Есть ли перехватчик, который я могу использовать, который выполняется до выполнения запроса, или есть способ повторить запрос до отображения HTML.?

Подробнее здесь: https://stackoverflow.com/questions/554 ... oduct-list
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»