So fügen Sie benutzerspezifische Preispreispreis hinzu, ohne die WOOCommerce -Produktseitengeschwindigkeit zu unterbrechPhp

PHP-Programmierer chatten hier
Anonymous
 So fügen Sie benutzerspezifische Preispreispreis hinzu, ohne die WOOCommerce -Produktseitengeschwindigkeit zu unterbrech

Post by Anonymous »

Ich arbeite an der Anzeige des benutzerspezifischen, benutzerdefinierten Preisträgerpreises und funktioniert ordnungsgemäß. Wenn ein Benutzer jedoch die Produktlistenseite besucht, dauert es länger, wenn ich eine Datenbankabfrage erstelle, um den Preis abzurufen. Ich habe darüber nachgedacht, den Preis zwischenzuspeichern, aber selbst dann muss ich die Datenbank noch anrufen, um den Preis zum ersten Mal zwischenzuspeichern. Eine weitere Sorge ist, dass sich die Preise häufig ändern, sodass ich für einen längeren Zeitpunkt nicht am Cache festhalten kann.

Code: Select all

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;
}

}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post