חיפוש ]

ארכיונים: סניפטים וקטעי קוד | עמוד 7

הוספת קוד מעקב משלכם בעמוד ״תודה״ של ווקומרס

הקוד שלפניכם מאפשר להוסיף קוד מעקב כלשהו בעמוד התודה (Thank You Page) של ווקומרס לאחר רכישה. המשתנה $order יכיל את כל המידע הרלוונטי של אותה הזמנה שבוצעה כך שתוכלו לשלוח את הפרטים לאותו שירות בו אתם משתמש למעקב. שימו לב [...]

הקוד שלפניכם מאפשר להוסיף קוד מעקב כלשהו בעמוד התודה (Thank You Page) של ווקומרס לאחר רכישה. המשתנה $order יכיל את כל המידע הרלוונטי של אותה הזמנה שבוצעה כך שתוכלו לשלוח את הפרטים לאותו שירות בו אתם משתמש למעקב.

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

/**
 * Add custom tracking code to the thank-you page
 */

function my_custom_tracking( $order_id ) {

	// Lets grab the order
	$order = wc_get_order( $order_id );

	/**
	 * Put your tracking code here
	 * You can get the order total etc e.g. $order->get_total();
	 */
	 
	// This is the order total
	$order->get_total();
 
	// This is how to grab line items from the order 
	$line_items = $order->get_items();

	// This loops over line items
	foreach ( $line_items as $item ) {
  		// This will be a product
  		$product = $order->get_product_from_item( $item );
  
  		// This is the products SKU
		$sku = $product->get_sku();
		
		// This is the qty purchased
		$qty = $item['qty'];
		
		// Line item total cost including taxes and rounded
		$total = $order->get_line_total( $item, true, true );
		
		// Line item subtotal (before discounts)
		$subtotal = $order->get_line_subtotal( $item, true, true );
	}
}
add_action( 'woocommerce_thankyou', 'my_custom_tracking' );

הרחבת שדה הכתובת בווקומרס

את הקוד הבא ניתן להוסיף לקובץ functions.php של תבנית הבת שלכם בכדי לגרום לשדה הכתובת להיות רחב יותר: /** * Make the billing address fields wider */ function custom_woocommerce_billing_fields( $fields ) { $fields['billing_address_1']['class'] = array( 'form-row-wide' ); $fields['billing_address_2']['class'] = array( [...]

את הקוד הבא ניתן להוסיף לקובץ functions.php של תבנית הבת שלכם בכדי לגרום לשדה הכתובת להיות רחב יותר:

/**
 * Make the billing address fields wider
 */

function custom_woocommerce_billing_fields( $fields ) {

     $fields['billing_address_1']['class'] = array( 'form-row-wide' );
     $fields['billing_address_2']['class'] = array( 'form-row-wide' );

     return $fields;
}
add_filter('woocommerce_billing_fields', 'custom_woocommerce_billing_fields');

סיום הזמנה אוטומטי בווקומרס (Auto Complete Orders)

ניתן לסמן כל הזמנה כסטטוס ״הושלם״ בצורה אוטומטית על ידי הוספת הקוד הבא לקובץ functions.php. ניתן אף לשנות את Completed ל Processing בכדי לגרום לכל הזמנה להיות בסטטוס ״בטיפול״ בצורה אוטומטית: /** * Auto Complete all WooCommerce orders. */ function [...]

ניתן לסמן כל הזמנה כסטטוס ״הושלם״ בצורה אוטומטית על ידי הוספת הקוד הבא לקובץ functions.php. ניתן אף לשנות את Completed ל Processing בכדי לגרום לכל הזמנה להיות בסטטוס ״בטיפול״ בצורה אוטומטית:

/**
 * Auto Complete all WooCommerce orders.
 */
function custom_woocommerce_auto_complete_order( $order_id ) {
    if ( ! $order_id ) {
        return;
    }

    $order = wc_get_order( $order_id );
    $order->update_status( 'completed' );
}
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order' );

כיצד להסתיר scrollbars בדפדפן ועדיין לאפשר גלילה?

בסיטואציות מסויימות תרצו להסתיר את פסי הגלילה (scrollbars) המופיעים באלמנט כלשהו אך עדיין לאפשר למשתמש לגלול. ניתן לעשות זאת עם ה CSS הבא כשהקלאס .element הוא האלמנט לו אתם רוצים להסתיר את פסי הגלילה: .element::-webkit-scrollbar { width: 0; height: 0 [...]

בסיטואציות מסויימות תרצו להסתיר את פסי הגלילה (scrollbars) המופיעים באלמנט כלשהו אך עדיין לאפשר למשתמש לגלול. ניתן לעשות זאת עם ה CSS הבא כשהקלאס .element הוא האלמנט לו אתם רוצים להסתיר את פסי הגלילה:

.element::-webkit-scrollbar {
    width: 0;
    height: 0
}

.element {
   scrollbar-width: none;
}

אז נאמר ואתם רוצים להסתיר את ה scrollbars המופיעים עבור תגית ה <html> – ניתן לעשות זאת באמצעות ה CSS הבא:

::-webkit-scrollbar {
    width: 0;
    height: 0
}

html {
   scrollbar-width: none;
}

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

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

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

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

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

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

add_filter( 'woocommerce_checkout_redirect_empty_cart', '__return_false' );
add_filter( 'woocommerce_checkout_update_order_review_expired', '__return_false' );

ביטול והסרת סכמה (Schema) ונתונים מובנים של Yoast

Yoast מוסיף אוטומטית סכמה (schema) בהתאם להגדרות שקבעתם בתוסף עצמו. ניתן לבטל או להסיר את קוד זה באמצעות אחד מהפילטרים הבאים (בהתאם לגירסה). בגירסאות Yoast הנמוכות מגירסה 11.0 ניתן להסיר את הסכמה באמצעות הפילטר הבא: function savvy_remove_yoast_json($data){ $data = array(); [...]

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

בגירסאות Yoast הנמוכות מגירסה 11.0 ניתן להסיר את הסכמה באמצעות הפילטר הבא:

function savvy_remove_yoast_json($data){
	$data = array();
	return $data;
}
add_filter('wpseo_json_ld_output', 'savvy_remove_yoast_json', 10, 1);

ועבור גירסאות Yoast הגבוהות מ 11.0 באמצעות פילטר זה:

add_filter( 'wpseo_json_ld_output', '__return_false' );

הצגת תאריך יחסי בוורדפרס

במקום להציג את התאריך המדוייק בו הפוסט שלכם פורסם, אתם יכולים להציג אותו באופן יחסי – ״ לפני 6 חודשים״ או ״לפני 3 שבועות״. השתמשו בקוד הבא בכדי לבצע זאת: # For posts & pages # <?php echo human_time_diff(get_the_time('U'), current_time('timestamp')) [...]

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

# For posts & pages #
<?php echo human_time_diff(get_the_time('U'), current_time('timestamp')) . ' ago'; ?>

# For comments #
<?php echo human_time_diff(get_comment_time('U'), current_time('timestamp')) . ' ago'; ?>

הצגת המספר הכולל של הפוסטים ב CPT מסויים

סניפט קצר זה מאפשר לכם להציג את המספר הכולל של הפוסטים עבור סוג תוכן ספציפי (Custom Post type). הוסיפו את הקוד היכן שאתם רוצים להציג את מספר הפוסטים ושנו את POST-TYPE-NAME לשם סוג התוכן שאת מספרו אתם מעוניינים להציג. <?php [...]

סניפט קצר זה מאפשר לכם להציג את המספר הכולל של הפוסטים עבור סוג תוכן ספציפי (Custom Post type). הוסיפו את הקוד היכן שאתם רוצים להציג את מספר הפוסטים ושנו את POST-TYPE-NAME לשם סוג התוכן שאת מספרו אתם מעוניינים להציג.

<?php
     // Get total number of posts in POST-TYPE-NAME
     $count_posts = wp_count_posts('POST-TYPE-NAME');
     $total_posts = $count_posts->publish;
     echo $total_posts;
?>

שינוי אורך התקציר הדיפולטיבי של וורדפרס

הפילטר הבא יאפשר לכם לקבוע את אורך התקציר שוורדפרס תציג בקריאה לפונקציה the_excerpt בדוגמה הבאה אנו קובעים כי אורך התקציר יהיה 20 תווים בלבד: function new_excerpt_length($length) { return 20; } add_filter('excerpt_length', 'new_excerpt_length');

הפילטר הבא יאפשר לכם לקבוע את אורך התקציר שוורדפרס תציג בקריאה לפונקציה the_excerpt בדוגמה הבאה אנו קובעים כי אורך התקציר יהיה 20 תווים בלבד:

function new_excerpt_length($length) {
     return 20;
}
add_filter('excerpt_length', 'new_excerpt_length');

כיצד להציג סוגי תוכן מותאמים בתוצאות החיפוש

סוגי תוכן מותאמים (CPT's) אינם נכללים בתוצאות החיפוש של וורדפרס כברירת מחדל. הסניפט הבא יאפשר לכם לבחור אילו סוגי תוכן מותאמים יתווספו לתוצאות החיפוש של וורדפרס. הוסיפו קוד זה לקובץ functions.php של התבנית שלכם ושנו את שמות סוגי התוכן בהתאם: [...]

סוגי תוכן מותאמים (CPT's) אינם נכללים בתוצאות החיפוש של וורדפרס כברירת מחדל. הסניפט הבא יאפשר לכם לבחור אילו סוגי תוכן מותאמים יתווספו לתוצאות החיפוש של וורדפרס. הוסיפו קוד זה לקובץ functions.php של התבנית שלכם ושנו את שמות סוגי התוכן בהתאם:

function custom_post_type_search( $query ) {
     if ($query->is_search) {
          $query->set('post_type', array( 'post', 'myCustomPostType1', 'myCustomPostType2', 'myCustomPostType3'));
     }
     return $query;
}
add_filter( 'pre_get_posts', 'custom_post_type_search' );

אם אתם מעוניינים באפשרויות חיפוש והצגת תוצאות חיפוש מתוחכמות יותר תנו מבט בפוסט ״שיפור מנגנון החיפוש באמצעות Relevanssi״.

Savvy WordPress Development