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

לוגו של טלגרם הצטרפו לערוץ הטלגרם וקבלו עדכון כאשר מאמר חדש מתפרסם!

מדוע להציג מוצרים שנצפו לאחרונה?

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

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

בניית מנגנון מוצרים שנצפו לאחרונה

ווקומרס מגיע עם ווידג׳ט אשר מציג את המוצרים אשר נצפו לאחרונה ע״י שימוש בעוגייה (Cookie).
הבעיה היא שאם הוודיג׳ט הזה לא פעיל, מנגנון המעקב אחרי צפייה במוצרים לא יעבוד.

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

שלב ראשון – יצירת מנגנון תיעוד

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

/**
 * Track user woocommerce viewed products.
 */
function dorzki_wc_track_product_views() {

	if( ! is_singular( 'product' ) || is_active_widget( false, false, 'woocommerce_recently_viewed_products', true ) ) {
		return;
	}

	global $post;

	if ( empty( $_COOKIE['woocommerce_recently_viewed'] ) ) {

		$viewed_products = array();

	} else {

		$viewed_products = wp_parse_id_list( (array) explode( '|', wp_unslash( $_COOKIE['woocommerce_recently_viewed'] ) ) );

	}

	$keys = array_flip( $viewed_products );

	if ( isset( $keys[ $post->ID ] ) ) {

		unset( $viewed_products[ $keys[ $post->ID ] ] );

	}

	$viewed_products[] = $post->ID;

	if ( count( $viewed_products ) > 15 ) {

		array_shift( $viewed_products );

	}

	wc_setcookie( 'woocommerce_recently_viewed', implode( '|', $viewed_products ) );

}

add_action( 'template_redirect', 'dorzki_wc_track_product_views', 20 );

הקוד הנ״ל מועתק כמעט אחד לאחד מפונקציית wc_track_product_view() של ווקומרס פרט לשינוי אחד.
בתחילת הפונקציה אנו בודקים האם הגולש לא נמצא בעמוד מוצר או אם הוודיג׳ט פעיל, במידה והווידג׳ט פעיל, הקוד שלנו לא ירוץ.

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

הקוד הנ״ל שומר את מזהה המוצר (ID) בעוגייה, במידה ויש יותר מ-15 ערכים, המוצר הכי ראשון שנצפה ימחק מהמערך.

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

לאחר שטיפלנו בשמירה של המוצרים שנצפו, עלינו כעת להציג אותם בעמוד העגלה.
על מנת להציג את המוצרים בעמוד העגלה נשתמש ב-Hook של ווקומרס – woocommerce_after_cart.

/**
 * Display recently viewed products.
 */
function dorzki_wc_display_products_viewed() {

	if ( empty( $_COOKIE['woocommerce_recently_viewed'] ) ) {
		return;
	}

	$total_products = apply_filters( 'loop_shop_columns', get_option( 'woocommerce_catalog_columns', 4 ) );
	$viewed_products = wp_parse_id_list( (array) explode( '|', wp_unslash( $_COOKIE['woocommerce_recently_viewed'] ) ) );

	$products = array_slice( $viewed_products, 0, $total_products );
	$ids = implode( ',', $products );

	echo "<h2>" . esc_html__( 'Recently Viewed Products', 'dorzki' ) . "</h2>";
	echo do_shortcode( "[products ids='{$ids}']" );

}

add_action( 'woocommerce_after_cart', 'dorzki_wc_display_products_viewed' );

בתור התחלה אנו בודקים האם העוגייה (Cookie) קיימת והאם העוגייה (Cookie) לא ריקה מתוכן.
לאחר מכן אנו מבקשים לדעת כמה מוצרים להציג בשורה, זאת על מנת שנוכל להגביל את כמות המוצרים שמוצגים.

לאחר מכן אנו מחלצים את מזהי (ID) המוצרים שמשתמש צפה ו-״מנקים״ אותם ע״י שימוש בפונקציה wp_parse_id_list().
לאחר מכן אנו מבקשים את הגדרת כמות המוצרים בעמודה ומחלצים את כמות המוצרים הזאתי מהרשימה, ככה שנגביל להצגה של שורה אחת בלבד.
במידה ואתם רוצים להציג יותר, ניתן לשנות את זה ידנית למספר.

לבסוף, אנו מדפיסים כותרת ואת רשימת המוצרים ע״י שימוש בשורטקוד [products].

צילום מסך של מוצרים שנצפו לאחרונה בעמוד עגלה

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

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

/**
 * Display recently viewed products.
 */
function dorzki_wc_display_products_viewed() {

	if ( empty( $_COOKIE['woocommerce_recently_viewed'] ) ) {
		return;
	}

	$total_products = apply_filters( 'loop_shop_columns', get_option( 'woocommerce_catalog_columns', 4 ) );
	$viewed_products = wp_parse_id_list( (array) explode( '|', wp_unslash( $_COOKIE['woocommerce_recently_viewed'] ) ) );

	foreach ( WC()->cart->get_cart_contents() as $product_data ) {

		if( false !== ( $key = array_search( $product_data[ 'product_id' ], $viewed_products ) ) ) {

			unset( $viewed_products[ $key ] );

		}

	}

	$products = array_slice( $viewed_products, 0, $total_products );
	$ids = implode( ',', $products );

	if( empty( $viewed_products ) ) {
		return;
	}

	echo "<h2>" . esc_html__( 'Recently Viewed Products', 'dorzki' ) . "</h2>";
	echo do_shortcode( "[products ids='{$ids}']" );

}

add_action( 'woocommerce_after_cart', 'dorzki_wc_display_products_viewed' );

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

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

דוגמאות לשימוש ברשימת מוצרים שנצפו לאחרונה

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

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

דיוור מתקדם ומותאם אישית

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

מתן הנחה עבור מוצרים שנצפו לאחרונה

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

ביצוע רימרקטינג בפייסבוק וגוגל

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

סיכום

הצגת מוצרים שנצפו לאחרונה ללקוחות או גולשים אשר חוזרים לאתר שלכם יכול לשפר את אחוזי ההמרה בחנות שלכם.

אז מה דעתכם? מה אתם הייתם עושים עם רשימת המוצרים שנצפו לאחרונה?

דור צוברי

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

דור צוברי

תגובות לפוסט

כתיבת תגובה