אחד מסוגי ההנחות הכי מוכרות במיוחד בתקופת החגים הוא הנחת המוצר הזול בעגלה או קבלת המוצר הזול בעגלה במתנה.
כיום אין דרך מובנת בווקומרס לממש את המבצע הזה דרך ממשק הניהול, והוא לרוב מצריך התקנה של תוספים או רכישה של תוספי פרימיום.
בעבר כבר למדנו איך לעשות מבצעים כמו ״קנה אחד, קבל את השני בחינם (BOGO)״ וגם ״הנחה כמותית למוצרים״, במאמר הזה נלמד אין לבנות מנגנון שמחשב מה המוצר הכי זול שיש למשתשמ בעגלה ולתת אותו בהנחה.
הטמעת הנחת המוצר הזול
על מנת לממש את סוג ההנחה הזאתי, כל שעלינו לעשות זה להטמיע את הקוד הבא כתוסף או בתבנית שלנו (פחות מומלץ).
/**
* Enables to discount the cheapest item in the cart
*
* @param WC_Cart $cart Current user cart.
*
* @return void
*/
public function dorzki_discount_cheapest_product( $cart ): void {
if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
return;
}
if ( did_action( 'woocommerce_before_calculate_totals' ) > 2 ) {
return;
}
$discount_percent = 25;
$min = PHP_FLOAT_MAX;
if ( count( $cart->get_cart() ) >= 2 ) {
foreach ( $cart->get_cart() as $cart_item ) {
if ( $cart_item['data']->get_price() <= $min ) {
$min = $cart_item['data']->get_price();
$cheapest_product = $cart_item;
}
}
$discounted_price = $cheapest_product['data']->get_price() * ( ( 100 - $discount_percent ) / 100 );
$cheapest_product['data']->set_price( $discounted_price );
$cheapest_product['data']->set_sale_price( $discounted_price );
} else {
foreach ( $cart->get_cart() as $cart_item ) {
$cart_item['data']->set_price( $cart_item['data']->get_regular_price() );
$cart_item['data']->set_sale_price( $cart_item['data']->get_regular_price() );
}
}
}
add_action( 'woocommerce_before_calculate_totals', 'dorzki_discount_cheapest_product' );
מה שאנחנו עושים פה בעצם זה מתחברים למנגנון חישוב העגלה של ווקומרס, ובעצם בודקים האם יש לפחות 2 מוצרים בעגלה, במידה וכן אנו מנסים לאתר את המוצר הכי זול, ועליו אנחנו מפעילים את ההנחה.
במקרה שלנו אנחנו נותנים פה הנחה של 25% על המוצר הכי זול בעגלה של המשתמש.
לאחר מימוש הקוד, אנחנו נראה משהו בסגנון הבא:
שימו לב כי הקוד אינו מטפל במצב שיש לנו יותר מכמות של מוצר אחד בהנחה, כלומר אם המוצר הכי זול שיש בעגלה הוא בכמות של 2, אז הנחת המוצר הזול בעגלה יהיה על כל הכמות.
סיכום
הקוד הנ״ל הינו הבסיס של הנחת המוצר הזול בעגלה, איתו אפשר אפילו לעשות מבצע כמו לתת את המוצר הכי זול בעגלה, או לעשות שהמוצר הכי זול בעגלה יעלה שקל.