Я работаю над отображением конкретной пользовательской ценой 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
Как добавить Pricelist Price, конкретную пользователь, не прерывая скорость страницы продукта WooCommerce ⇐ Php
Кемеровские программисты php общаются здесь
1750356252
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;
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79672471/how-to-add-user-specific-pricelist-price-without-interrupting-the-woocommerce-pr[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия