WooCommerce mağaza promosyonları yürütüyorsanız bu küçük kod parçası size bu konuda yardımcı olacaktır. Mesela “ 2 ürün alana yarı indirim ” ya da “ 3 ürün alana en ucuzunu bedava ” kampanyası nasıl yürütülür?
Bu geçici çözümün ardındaki hile, sepette dolaşarak en ucuz ürünü bulmak ve ardından fiyatını normal fiyattan daha düşük olacak şekilde ayarlamaktır. Eğlence!
PHP Snippet'i: WooCommerce Sepetinde En Ucuz Ürün Satış Fiyatını Belirleyin
Aşağıdaki kod, sepetteki en ucuz ürüne %50 indirim uygular (ayrıca BOGO 50 = Bir Alana Bir %50 İndirim denir).
Alt alandaki kodları Temanızın functions.php sayfasına eklemeniz gerekmektedir.
/**
* @snippet Sepette En ucuz ürüne %50 İndirim Uygulama @ WooCommerce Yönetim Ürünler Listesi
* @author Furkan Sağlam
* @compatible WooCommerce 8
*/
add_action( 'woocommerce_before_calculate_totals', 'fks_cheapest_cart_item_half_off', 9999 );
function fks_cheapest_cart_item_half_off( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ) return;
if ( count( $cart->get_cart() ) < 2 ) return; // AT LEAST 2 PRODUCTS IN THE CART
$min = PHP_FLOAT_MAX;
// LOOP THROUGH CART TO FIND CHEAPEST ITEM
foreach ( $cart->get_cart() as $cart_item_key => $cart_item ) {
if ( $cart_item['data']->get_price() <= $min ) {
$min = $cart_item['data']->get_price();
$cheapest = $cart_item_key;
}
}
// LOOP THROUGH CART TO REDUCE CHEAPEST ITEM PRICE BY 50%
foreach ( $cart->get_cart() as $cart_item_key => $cart_item ) {
if ( $cheapest == $cart_item_key ) {
$price = $cart_item['data']->get_price() / 2;
$cart_item['data']->set_price( $price );
$cart_item['data']->set_sale_price( $price );
}
}
}
Kod eklendikten sonra sepette en uygun fiyatlı ürününüze %50 İndirim uygulanmış olacaktır.
Görselde gördüğünüz gibi indirim uygulandı ama bunu müşteriye bildirmemiz ve göstermemiz de gerekmektedir. İndirim uygulanmadan önceki fiyatını da göstermemiz gerekiyor bu durumla ilgili kodlarıda alt alanda sizlerle paylaşıyorum.
add_filter( 'woocommerce_cart_item_price', 'fks_change_cart_table_price_display', 30, 3 );
function fks_change_cart_table_price_display( $price, $values, $cart_item_key ) {
$slashed_price = $values['data']->get_price_html();
$is_on_sale = $values['data']->is_on_sale();
if ( $is_on_sale ) {
$price = $slashed_price;
}
return $price;
}
Bu makaleyi beğendiyseniz, lütfen WordPress video eğiticileri için YouTube Kanalımıza abone olun. Bizi Twitter ve Facebook’ta da bulabilirsiniz.