Как добавить Pricelist Price, конкретную пользователь, не прерывая скорость страницы продукта WooCommercePhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как добавить Pricelist Price, конкретную пользователь, не прерывая скорость страницы продукта WooCommerce

Сообщение Anonymous »

Я работаю над отображением конкретной пользовательской ценой Pricelist, и она работает должным образом. Тем не менее, когда пользователь посещает страницу списка продуктов, загрузка требуется больше времени, так как я делаю запрос базы данных, чтобы получить цену. Я думал о кэшировании цены, но даже тогда мне все еще нужно позвонить в базу данных, чтобы кэшировать цену в первый раз. Другая проблема заключается в том, что цены часто меняются, поэтому я не могу держаться за кеш в течение более длительного времени.add_filter( 'woocommerce_product_get_price', array( $this, 'show_pricelist_price' ), 10, 2);
add_filter( 'woocommerce_product_get_sale_price', array( $this, 'show_pricelist_price' ), 10, 2);
add_filter( 'woocommerce_product_variation_get_price', array( $this, 'show_pricelist_price' ), 10, 2);

public function show_pricelist_price($price, $product) {

if(is_admin())
return $price;

if( current_user_can('manage_options') ) {

return $price;

}

$current_user_id = get_current_user_id();
$id= $product->get_id();

$sale_price = get_post_meta( $id, '_sale_price', true);

$pricelist_id = get_user_meta($current_user_id,'user_pricelist_b2bwoo', true);

if( !is_user_logged_in()) {
$pricelist_id =31;
}

global $wpdb;
$table_name = $wpdb->prefix . 'woo_pricelists_products';

$sku = $product->get_sku();
if (empty($sku) || empty($pricelist_id)) {
return $price;
}

if(!empty($pricelist_id)) {
$query = $wpdb->prepare(
"SELECT final_price FROM $table_name WHERE pricelist_id = %d AND sku = %s",
$pricelist_id,
$sku
);

$get_baseprice = $wpdb->get_var($query);
}

if(!empty($get_baseprice) && empty($sale_price)) {

return $get_baseprice;
}

else {
return $price;
}

}


Подробнее здесь: https://stackoverflow.com/questions/796 ... ommerce-pr
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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