मेरी साइट पर उत्पादों की कीमतें रोबोट के माध्यम से एकत्र की जाती हैं। सभी कीमतें तुर्की लीरा में हैं। मैं चाहता हूं कि सभी उत्पादों की कीमत डॉलर में बदल दी जाए। मैंने इस कोड स्निपेट का इस्तेमाल किया।

function regular_price_func( $price, $product )
{
    //your logic for calculating the new price here
     $price = $product->get_regular_price()*1.3;

    //Return the new price (this is the price that will be used everywhere in the store)
    return $price;
}
add_filter('woocommerce_product_get_price', 'regular_price_func', 99, 2);

लेकिन जब उत्पाद के लिए विशेष बिक्री मूल्य सक्रिय होता है, तो कीमतें गलत होती हैं।

नए कोड:

// Change/Update Regular price 
 add_filter( 'woocommerce_product_get_regular_price', 'regular_price_func', 10, 2 );
 add_filter( 'woocommerce_product_variation_get_regular_price', 'regular_price_func', 10, 2 );
 function regular_price_func( $regular_price, $product ) {
      $rate = 1.3;
      if( empty($regular_price) || $regular_price == 0 ){
        return $product->get_price() * $rate;  
      } else{
        return $regular_price;  
      }
      
 }

 // You can also Change/Update Sale price 
 add_filter( 'woocommerce_product_get_sale_price', 'woo_sale_price_price_func', 10, 2 );
add_filter( 'woocommerce_product_variation_get_sale_price', 'woo_sale_price_price_func', 10, 2 );
 function woo_sale_price_price_func( $sale_price, $product ) {
     $rate = 1.3;
     if( empty($sale_price) || $sale_price == 0 )
      return $product->get_regular_price() * $rate;
      else
     return $sale_price * $rate;
 };
1
yasin taqizade 3 सितंबर 2021, 09:58

2 जवाब

सबसे बढ़िया उत्तर

इसे आज़माएं, आप बिक्री मूल्य और नियमित मूल्य बदल सकते हैं और तदनुसार स्थिति को अपडेट कर सकते हैं।

//Change/Update Regular price 
add_filter( 'woocommerce_product_get_regular_price', 'regular_price_func', 10, 2 );
add_filter( 'woocommerce_product_get_price', 'regular_price_func', 10, 2 );
add_filter( 'woocommerce_product_variation_get_regular_price', 'regular_price_func', 10, 2 );
function regular_price_func( $regular_price, $product ) {
    $rate = 1.3;
    if( empty($regular_price) || $regular_price == 0 ){
    return $product->get_price() * $rate;  
    } else{
    return $regular_price * $rate;  
    }
    
}

// You can also Change/Update Sale price 
add_filter( 'woocommerce_product_get_sale_price', 'woo_sale_price_price_func', 10, 2 );
add_filter( 'woocommerce_product_variation_get_sale_price', 'woo_sale_price_price_func', 10, 2 );
function woo_sale_price_price_func( $sale_price, $product ) {
    $rate = 1.3;
    if( empty($sale_price) || $sale_price == 0 )
    return $product->get_regular_price() * $rate;
    else
    return $sale_price * $rate;
};
1
Rajeev Singh 4 सितंबर 2021, 09:46

यदि आप या तो नियमित मूल्य या बिक्री मूल्य में परिवर्तन करना चाहते हैं। आपको यह निर्दिष्ट करना होगा कि आप किनका उपयोग करना चाहते हैं।

साथ ही, हुक woocommerce_product_get_price को 3.0 के रूप में हटा दिया गया है, इसके लिए प्रतिस्थापन woocommerce_get_price है - और अंत में, यह फ़िल्टर एक स्ट्रिंग के रूप में मूल्य देता है, इसलिए किसी मान को गुणा करने के लिए, आपको floatval उस स्ट्रिंग का।

function regular_price_func($price, $product) {
    if ($product->is_on_sale()){
        $price = floatval($product->get_sale_price()) * 1.3;
    } else {
        $price = floatval( $product->get_regular_price() ) * 1.3;
    }
    //Return the new price (this is the price that will be used everywhere in the store)
    return $price;
}

add_filter( 'woocommerce_get_price', 'regular_price_func', 99, 2 );
0
Howard E 3 सितंबर 2021, 10:04