ישנן חנויות אשר מעוניינות להגביל את המשתמש לרכוש אך ורק מוצר אחד, לדוגמא, מנוי, הזמנת חופשה, תשלום על מוצר דיגיטלי כלשהו וכד׳.
במאמר הבא נלמד כיצד להגביל את המשתמש ברכישה של מוצרים וכיצד לדלג על עמוד העגלה, ישירות לעמוד תשלום.

שלב ראשון – הגבלת כמות רכישה

הצעד הראשון שנעשה הוא להגביל את המשתמש לרכוש אך ורק כמות בודדת של המוצר, כלומר, לא לאפשר לרכוש יותר ממוצר בודד מאותו הסוג, ניתן לעשות זאת פרטנית ע״י עריכת המוצר, וסימון ״הפעל אפשרות זאת כדי להגביל קניית פריט אחד בלבד בכל הזמנה״ תחת לשונית ״מלאי״.

אך במידה ונרצה לעשות זאת באופן גורף, נעשה זאת ע״י פתיחת קובץ functions.php ונדביק את הקוד הבא:

/**
 * Limit the user to purcahse a quantity of 1 for a product.
 */
add_filter( 'woocommerce_is_sold_individually', '__return_true' );

שלב שני – הגבלת כמות מוצרים בעגלה

השלב השני הוא להגביל את כמות המוצרים האפשריים בעגלה, נעשה זאת ע״י ריקון של העגלה כאשר מוצר נוסף לעגלה, כך נדאג שתמיד יהיה מוצר אחד בעגלה.

/**
 * Allow the user to only have one product in cart.
 *
 * @param boolean $passed did the request passed validation?
 *
 * @return boolean
 */
function dorzki_allow_only_one_product_in_cart( $passed ) {

	wc_empty_cart();

	return $passed;

}

add_action( 'woocommerce_add_to_cart_validation', 'dorzki_allow_only_one_product_in_cart' );

שלב שלישי – ביטול הודעת ״מוצר נוסף לעגלה״

השלב הבא הוא לבטל את הודעת ברירת המחדל של WooCommerce אשר מודיעה על כך שהמוצר נוסף לסל, נעשה זאת ע״י הקוד הבא:

/**
 * Disable add to cart notice.
 */
add_filter( 'wc_add_to_cart_message_html', '__return_false' );

שלב רביעי – שינוי טקסט כפתור (אופציונלי)

השינוי הבא הוא שינוי אסטתי בלבד, המטרה שלו הוא לשנות את הטקסט של הכפתור מ-״הוסף לסל״ ל-״רכוש כעת״.

/**
 * Change add to cart text.
 *
 * @param string $button_text add to cart button text.
 *
 * @return string
 */
function dorzki_change_add_to_cart_text( $button_text ) {

	return esc_html__( 'רכוש כעת', 'dorzki' );

}

add_filter( 'woocommerce_product_add_to_cart_text', 'dorzki_change_add_to_cart_text' );
add_filter( 'woocommerce_product_single_add_to_cart_text', 'dorzki_change_add_to_cart_text' );

שלב חמישי – החבאת עמוד עגלה

על מנת למנוע מצב שהגולש יוכל לגשת לעגלה, נכנס לפאנל הניהול של האתר, נכנס להגדרות WooCommerce, תחת לשונית מוצרים, נלחת על ה-X על מנת לבטל את עמוד עגלה, ולבסוף נלחץ על שמור.

שלב שישי – הפנייה לעמוד תשלום

השלב האחרון הוא הפנייה לעמוד תשלום, כך שבעת לחיצה על כפתור הוסף לסל, נועבר ישירות לעמוד תשלום.

/**
 * Redirect the user to checkout and skip cart.
 *
 * @return string
 */
function dorzki_redirect_user_to_checkout() {

	return wc_get_page_permalink( 'checkout' );

}

add_filter( 'woocommerce_add_to_cart_redirect', 'dorzki_redirect_user_to_checkout' );

סיכום

במספר צעדים בסיסיים, הצלחנו לבטל את עמוד עגלה ולאפשר ללקוח לרכוש אך ורק מוצר אחד. כאמור פיתרון זה רלוונטי לחנויות שמעוניינות לאפשר ללקוח לרכוש אך ורק מוצר אחד כגון מנוי.

    כתיבת תגובה

    1. עומר

      היי דור, תודה רבה על העזרה. כל הכבוד עזרת לי!
      אשמח לדעת איך ניתן להגביל להוספת מוצר אחד אבל רק מקטגוריית מוצרים מסויימת (מנויים למשל).
      כלומר, אם אני מוכר מנויים אך גם עוד מוצרים באתר (שגם נמכרים כבודדים) ובעצם מקטגוריית המנויים בלבד יוכלו לרכוש רק מנוי אחד בלבד ומכל שאר המוצרים באתר – רגיל.
      תודה רבה!

      הגב
      1. דור צוברי

        היי עומר,
        תודה על המילים החמות 🙂

        בעיקרון יש לך אפשרות בכל מוצר תחת הגדרות המוצר להגדיר שהוא ימכר בכמות בודדת בלבד, ככה אתה יכול להגדיר שאת חלק מהמוצרים יהיה ניתן לרכוש אך ורק בכמות בודדת, ואת השאר ללא הגבלה 🙂

    2. אורי

      היי
      תודה רבה על המידע, ועל כל הטיפים הנפלאים שאתה מעלה

      אשמח לדעת האם אפשר לעשות שההגבלה על כמות פריטים בעגלה תיהיה רק מקטגוריה מסויימת, ומקטגוריות אחרות יהיה אפשר להוסיף מוצרים

      הגב
      1. דור צוברי

        היי אורי 👋,
        תודה רבה על המילים החמות, אני מזמין אותך להירשם לעדכונים באימייל או בטלגרם אם לא נרשמת עדיין 🙂

        לגבי השאלה שלך, אתה יכול להוסיף הגבלה הזאת ללא הקוד, יש לך אפשרות להגביל את הרכישה של מוצר אחד דרך ההגדרות של המוצר הספציפי בממשק עריכה במקום בקוד 🙂

    אפשר להציע לך עוגיות? יש גם קפה! השימוש בקוקיז עוזר לשפר את הביקור שלך באתר. המשך גלישה אומר שהסכמת למדיניות הפרטיות שלי, וגם לקפה.

    שתפו