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

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

Сообщение Anonymous »

Я работаю над отображением конкретной пользовательской ценой Pricelist Price, и она работает должным образом. Однако, когда пользователь посещает страницу списка продуктов, для загрузки требуется больше времени, поскольку я делаю запрос базы данных, чтобы получить цену. Я думал о кэшировании цены, но в любом случае мне нужно позвонить в базу данных для кэширования цены в первый раз. Еще одна проблема, которую цены часто меняются, поэтому я не могу удерживать кэш в течение более длительного времени.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»