Hur visar man standardpris för Woocommerce/WordPress baserat på försäljningspris?
Woocommerce är ett kraftfullt plugin/ramverk som gör det möjligt att skapa en onlinebutik med WordPress. Du kan redigera attributen för varje vara, men ibland har du så många varor att det kan ta tid att uppdatera ett visst attribut för en vara.
Om du till exempel har glömt att ange ordinarie pris för varor, kommer det inte att visa ett ordinarie pris i korstypsnitt som ~100,00 GBP~. Men det skulle vara trevligt att sätta det ordinarie priset så att kunderna känner att varorna är till rea (billigare) och det ökar säkert köphastigheten.
Du kan skriva en komplex SQL för att uppdatera metadata men det kommer att vara riskabelt och kanske inte är så flexibelt än följande metod. Lägg in följande PHP-kod i ditt barn-temas mall functions.php
function helloacm_regular_price( $price, $product) {
$price_factor = 1.3; // show sale price * 1.3
$sale_price = $product->get_sale_price(); // get sale price
if (!is_numeric($sale_price)) { // sale price not set
return $price; // return default price.
}
$exp_price = $sale_price * $price_factor; // get expected regular price
if ($price > 0) { // if regular price is filled
if ($price < $sale_price) { // if it is even smaller than sale price
return $exp_price; // return corrected regular price
}
return $price; // otherwise return the input regular price
}
return $exp_price; // return the default regular price
}
add_filter( 'woocommerce_get_regular_price', 'helloacm_regular_price', 10, 2);
Nu räcker det. Om det ordinarie priset inte anges kommer det att visa standardpriset som är $price_factor gånger försäljningspriset. Annars kommer det att göras en säkerhetskontroll för att säkerställa att det ordinarie priset alltid är högre än försäljningspriset.
Detta förändrar inte databasen så det anses vara det säkraste sättet att spela tricken. Filtret woocommerce_get_regular_price läggs till innan ordinarie pris returneras.