Categories
ווקומרס - WooCommerce

אפשרויות מתקדמות לווקומרס

התקן את התוסף על מנת להוסיף לווקומרס אפשרויות מתקדמות.

Categories
ווקומרס - WooCommerce

ערים באזורי משלוח לווקומרס

התקן את התוסף על מנת להוסיף לישראל רשימת ערים שישמשו כאזורי משלוח.

רשימת ערים

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

איך להסיר ערים כלשהם מהרשימה?
עדכן את רשימת הקודים של הערים להסרה:

add_filter( 'woocommerce_states', 'csz_remove_woocommerce_states', 50 );
function csz_remove_woocommerce_states( $states ) {
	$unnecessary_cities = array( 'AT10101', 'AT10201', 'AT10301' );
	foreach ( $unnecessary_cities as $city ) {
		unset( $states[ substr( $city, 0, 2 ) ][ $city ] );
	}
	return $states;
}

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

add_filter( 'woocommerce_states', 'csz_set_woocommerce_states', 20 );
function csz_set_woocommerce_states( $states ) {
	$country = 'AT';
	$cities = array( 'AT10101', 'AT10201', 'AT10301' );
	$new_states = array();
	foreach ( $cities as $city ) {
		if ( isset( $states[ $country ][ $city ] ) ) {
			$new_states[ $city ] = $states[ $country ][ $city ];
		}
	}
	$states[ $country ] = $new_states;
	return $states;
}

איך ליצור אזורי משלוח לאזורים שבתוך העיר?
השתמש במיקוד, או חלק את העיר לתתי עיר (פחות מומלץ)- לדוגמא:

add_filter( 'woocommerce_states', 'csz_split_woocommerce_states', 30 );
function csz_split_woocommerce_states( $states ) {
	unset( $states['AT']['AT90001'] );
	$states['AT'] += array(
		'AT900011' => 'Wien' . '- ' . __( 'Northern', 'woocommerce' ),
		'AT900012' => 'Wien' . '- ' . __( 'Southern', 'woocommerce' ),
	);
	return $states;
}
תאימות לשיטות תשלום

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

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

מצב מחוז

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

עמלת מרחק

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

איך למצוא את ה-ID של שיטות המשלוח?
רחף עם העכבר על כפתור העריכה של שיטת המשלוח עד שיופיע הקישור, בסופו נמצא ה-ID של השיטה.

מדוע איני רואה את עמלת המרחק בדף התשלום?
שמור מחדש שיטת תשלום כלשהי (על מנת לנקות את ה-cache).

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

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

ניהול התראות בוורדפרס

הוספת כתובת אימייל לקבלת התראה על תגובות (עדכן את כתובת האימייל):

add_filter( 'comment_moderation_recipients', 'condless_comment_moderation_recipients', 11, 2 );
add_filter( 'comment_notification_recipients', 'condless_comment_moderation_recipients', 11, 2 );
function condless_comment_moderation_recipients( $emails, $comment_id ) {
	array_push( $emails, "info@example.com" );
	return $emails;
}
Categories
ווקומרס - WooCommerce

שדות הזמנה מותאמים בווקומרס

והמתמטיקאי הפרסי.

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

add_action( 'woocommerce_checkout_create_order', 'condless_before_checkout_create_order', 20, 2 );
function condless_before_checkout_create_order( $order, $data ) {
	$order->update_meta_data( 'shipping_date', __( 'Empty Term.' ) );
	$order->update_meta_data( 'shipping_time', __( 'Empty Term.' ) );
}

add_action( 'woocommerce_admin_order_data_after_shipping_address', 'condless_checkout_field_display_admin_order_meta' );
function condless_checkout_field_display_admin_order_meta( $order ) {
	echo '<p><strong>'. __( 'Shipping', 'woocommerce' ) . ' ' . __( 'Date' ) . ':</strong> ' . get_post_meta( $order->get_id(), 'shipping_date', true ) . '</p>';
	echo '<p><strong>'. __( 'Shipping', 'woocommerce' ) . ' ' . __( 'Time' ) . ':</strong> ' . get_post_meta( $order->get_id(), 'shipping_time', true ) . '</p>';
}

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

Categories
ווקומרס - WooCommerce

התאמה אישית של עמוד קטגוריית מוצר בווקומרס

הצגת תיאור הקטגוריה לאחר המוצרים במקום לפניהם:

add_action( 'woocommerce_archive_description', 'condless_custom_archive_description', 2 );
function condless_custom_archive_description() {
        if( is_product_category() ) {
                remove_action( 'woocommerce_archive_description', 'woocommerce_taxonomy_archive_description' );
                add_action( 'woocommerce_after_main_content', 'woocommerce_taxonomy_archive_description', 5 );
        }
}

הצגת תיאור הקטגוריה רק במעבר עכבר (CSS):

.term-description {
	display: none;
}

.woocommerce-products-header__title:hover + .term-description {
	display: block;
	border-style: ridge;
}
Categories
וורדפרס

תגיות לשיתוף פוסטים בוורדפרס

שיתוף יעיל של פוסטים ברשתות החברתיות עם התוסף. השתמש בתמונות ברוחב ובאורך של לפחות 200 פיקסלים וביחס 1:1 עד 1:2

Categories
וורדפרס

משתני session בוורדפרס

הפעלת האפשרות לשימוש במשתני session:

add_action( 'init', 'condless_activate_session', 1 );
function condless_activate_session() {
        if( ! session_id() ) {
                session_start();
        }
}
Categories
וורדפרס

עורך הוורדפרס גוטנברג

על מנת להציג קוד שמכיל תווי Unicode השתמש בבלוק קלאסי.

תיקון הבלוק של קוד באתר בעברית (CSS):

pre.wp-block-code {
	text-align: left;
	direction: ltr;
}

הצגת בלוק וידאו בעמוד הראשי ברוחב מלא (CSS):

.home .wp-block-video { min-width: 100vw !important; }
Categories
שרתים וירטואליים

אבטחת שרת אינטרנט

וצעצוע של סיפור.

  • עדכן באופן תדיר
  • החלף את הסיסמאות לעיתים תכופות תוך וידוא שהן באורך 8 תווים לפחות (אותיות גדולות וקטנות באנגלית, מספרים וסמלים) והוסף אימות דו-שלבי
  • הגדר חומת אש
  • הפעל הגנת DDOS
  • סרוק את קבצי השרת ועבור על הלוגים באופן תכוף
  • השתמש ביוזר root רק בעת הצורך

חסימת התחברות של המשתמש root ב-SSH- הוסף לקובץ etc/ssh/sshd_config/:

PermitRootLogin no

הגדר אילו לוגים יישמרו והיכן בקובץ etc/rsyslog.conf/.

הגדרת מערכת למניעת חדירות Fail2ban:

  • הפעל את mod_remoteip (במידה ומשתמש ברברס פרוקסי)
  • צור את הקובץ etc/fail2ban/jail.local/ והשתמש בהוראות, לדוגמא, הפעלת הגנה ממושכת על SSH:
[recidive]
enabled = true

[sshd]
enabled = true

הגדרת מספר קבצי לוג:

logpath = /var/www/clients/client12/web*/log/access.log
          /var/www/clients/client13/web*/log/access.log

ביטול חסימה שנוצרה השתמשו בפקודה:

 fail2ban-client set sshd unbanip $IP

הסתרת פרטי שרת ווב אפאצ'י- הוסף לקובץ etc/apache2/apache2.conf/:

ServerTokens Prod
ServerSignature Off

הסתרת פרטי ה-PHP- הוסף לקובץ php.ini:

expose_php = off

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

Categories
שרתים וירטואליים

ניהול שרת דואר

שיפור שיעור השליחה המוצלחת של דוא"ל מהשרת:

  • הגדר לשמות המתחם: DMARC ,DKIM ,SPF
  • וודא ששם השרת קיים בערכים: A record ,rDNS, ממשק ניהול השרת, בתצורת ה-MTA (כולל mailname),וה-Content filter שבשימוש

הגדרת relay host ב-Postfix- השתמש בפקודות:

apt-get install libsasl2-modules
postconf -e 'relayhost = $relay_host_ip'
postconf -e 'smtp_sasl_auth_enable = yes'
postconf -e 'smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd'
postconf -e 'smtp_sasl_security_options ='
echo "$relay_host_ip   yourEmail:yourPassword" > /etc/postfix/sasl_passwd
chown root:root /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/sasl_passwd
postmap /etc/postfix/sasl_passwd
/etc/init.d/postfix restart