Categories
ווקומרס - WooCommerce

הרשאות עריכת מוצר בווקומרס

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

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

add_action( 'add_meta_boxes_product', 'condless_remove_metaboxes_edit_product', 9999 );
function condless_remove_metaboxes_edit_product() {
	if ( ! current_user_can( 'manage_options' ) ) {
		remove_meta_box( 'postexcerpt', 'product', 'normal' );
		remove_meta_box( 'postimagediv', 'product', 'side' );
		remove_meta_box( 'woocommerce-product-images', 'product', 'side' );
	}
}

add_filter( 'woocommerce_product_data_tabs', 'condless_remove_tabs' );
function condless_remove_tabs( $tabs ) {
	if ( ! current_user_can( 'manage_options' ) ) {
		unset( $tabs['advanced'] );
	}
	return( $tabs );
}

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

Categories
ווקומרס - WooCommerce

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

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

Categories
ווקומרס - WooCommerce

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

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

רשימת ערים

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

add_filter( 'woocommerce_states', 'csz_modify_woocommerce_states', 40 );
function csz_modify_woocommerce_states( $states ) {
	$country = 'AT';
	$states[ $country ]['AT90001'] = 'Vienna';
	return $states;
}

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

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;
}

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

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

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

עמלת מרחק

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

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

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

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

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

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

אזורי שילוח חריגים של שירות השליחויות צ'יטה (לשימוש באפשרות הבחירה הקבוצתית):

אבו בסמה;אבו גווייעד;אבו כף;אבו סנאן;אבו סריחאן;אבו סריחאן (שבט);אבו עבדון;אבו עבדון (שבט);אבו עמאר;אבו עמאר (שבט);אבו עמרה;אבו עמרה (שבט);אבו קוידר;אבו קורינאת;אבו קורינאת (שבט);אבו קרינאת;אבו קרינאת (ישוב);אבו קרינאת (שבט);אבו רביע;אבו רובייעה;אבו רובייעה (שבט);אבו רוקייק;אבו רוקייק (שבט);אבו רקייק;אבו רקיק;אבו תלול;אבטין;אבטליון;אבטן;אביבים;אביגייל;אביגיל;אביטל;אבים;אבירים;אבירם;אבן מנחם;אבן שמואל;אבני איתן;אבני חפץ;אבנת;אבשלום;אגור;אגמון החולה;אדורה;אדירים;אדם;אדמית;אודם;אוהד;אום אל-גנם;אום אל-פחם;אום אל-קוטוף;אום אלגנם;אום בטין;אומן;אומץ;אור הגנוז;אור הנר;אורטל;אורים;אורנים;אורנית;אחוזם;אחוזת ברכפלד;אחזם;אחיה;אטרש;אטרש (שבט);איבטין;איבים;איכסאל;אילון;אילות;אילת;איתמר;איתן;אכסאל;אל-עזאזמה;אל-עריאן;אל-רום;אל סייד;אל עריאן;אל רום;אלהואשלה;אלומה;אלון;אלון מורה;אלון שבות;אלוני אבא;אלוני הבשן;אלונים;אלי-עד;אלי סיני;אלי עד;אלי על;אליאב;אליעד;אליפז;אלמגור;אלמה;אלמוג;אלעזר;אלפי מנשה;אלקוש;אלקנה;אם אל-גנם;אם אל קטוף;אמונים;אמירים;אמן;אמנון;אמץ;אמציה;אניעם;אסד;אסד (שבט);אספר;אעבלין;אפיק;אפרת;אפרתה;ארגמן;ארז;אריאל;ארנית;אש הקודש;אשבול;אשחר;אשכולות;אשל הנשיא;אשלים;אתגר;באקה-גת;באקה אל-גרביה;באר אורה;באר גנים;באר מילכא;באר מילכה;באר מלכה;בארותיים;בארותים;בארי;בבולות;בועיינה;בועיינה-נוגידאת;בוקעאתא;בחן;ביכוריה;ביר אל-מכסור;ביר הדאג;ביר מכסור;ביריה;בית אל;בית אריה;בית גן;בית גוברין;בית הגדי;בית הדר;בית הלוי;בית הערבה;בית חגי;בית חורון;ושוע תעשיה;בית יוסף;בית יתיר;בית לחם;בית לחם בגליל;בית לחם הגלילית;בית ליד;בית ניר;בית עזרא;בית קמה;בית קשת;בית שקמה;ביתר עלית;בני דקלים;בני דרום;בני יהודה;בני נצרים;בני עצמון;מחנה הילה;מחנה מרים;מחנה טלי;מחנה תל נוף;מחנה יפה;מחנה יהודית;מחנה יתיר;מחנה יוכבד;בסמה;בעינה;בעינה נגידאת;בענה;בקעות;בקעת הסיירים;בקעתה;בר יוחאי;ברוכין;ברור חיל;ברוש;ברכה;ברכיה;ברכפלד;ברעם;ברק;ברקן;בת הדר;בת חפר;בת עין;גדידה;גדיידה-מכר;גוליס;גולס;גלגוליה;גנאביב (שבט);גסר א-זרקא;גש (גוש חלב);גת;גדיידה-מכר;גולס;גלגוליה;גנאביב;גאיה;גב ישעיהו;גבולות;גבים;גבע;גבע בנימין;גבעולים;גבעות;גבעות בר;גבעת אהוד;גבעת בר;גבעת הראל;גבעת וש;גבעת זאב;גבעת יואב;גבעת יערים;גבעת ישעיהו;גבעת נילי;גבעת עוז;גבעת עז;גבעת עזר;גבעתי;גברעם;גדות;גדיד;גדיידה;גדיש;גדעונה;גולס;גונן;גורן;גוש חלב;גיאה;גילת;גינות שומרון;גיתה;גיתית;גלאון;גלגוליה;גלגוליה;גלגל;גלעד קבוץ;גן הדרום;גן יאשיה;גן נר;גנאביב;גני מודיעין;גנים;גרופית;גרן;גשור;גשר;גת (באקה במשולש);גת (קיבוץ);גתה;גתית;דבורה;דבוריה;דביר;דבירה;דהילה;דובב;דוחן;דולב;דורות;דחי;דחן;דייר אל-אסד;דייר אל-אסד דיר חנא;דייר חנא;דייר ראפאת;דיר אל-אסד;דיר חנא;דיר ראפאת;דישון;דלב;דלתון;דמיידה;דן;דן גליל עליון;דפנה;דקל;דריגאת;הגושרים;הואשלה;הודיה;הוואשלה;הוואשלה (שבט);הוזייל;הוזייל (שבט);הוזייל שבט;הוזיל;הזורע;הזיל;היוגב;הילה;המעפיל;הר גילה;הר חלוץ;הר עמשא;הרדוף;השומרוני הטוב;ורד יריחו;ורדון;זבארגה;זבארגה (שבט);זבדיאל;זהר;זוהר;זוהרים;זימרת;זיקים;זלפה;זמר;זמרת;זרועה;זרזיר;זרחיה;חואלד;חואלד (שבט);חואלד;חבר;חברון;חגאגרה;חגור;חד-נס;חואלד;חוגייראת (דהרה);חוואלד;חוות גלעד;חוות יזרעם;חולית;חומש;חוסניה;חורה;חורפיש;חורשים;חזון יחזקאל;חיננית;חיספין;חירן;חלמיש;חלף;חלץ;חמאם;חמדיה;חמדת;חמדת (נחל);חמרה;חמש;חמת גדר;חניתה;חננית;חנתון;חספין;חפץ חיים;חצבה;חצרים;חריש;חריש-קציר;חרמש;חרפיש;חשמונאים;טובא-זנגריה;טורעאן;טייבה;טירה;טירת צבי;טל אור;טל מנשה;טללים;טלמון;טמרה;טמרה (יזראל);טנא;טנא עומרים;טרעאן;יאנוח-גת;יבול;יבולה;יד חנה;יד מרדכי;יד נתן;יהל;יובל;יודפת;יוטבתה;יונתן;יושיביה;יזרעאל;יזרעם;יטבתה;ייטב;יכיני;יסיף;יעד;יעל;יעלון;יערה;יפיע;יפית;יפתח;יצהר;יקיר;יראון;ירדנה;ירוחם;ירחיב;ירכא;ישע;יתד;יתיר;כאבול;כאוכב אבו אל-היגא;עוברה;כבול;כדיתה;כוכב;כוכב השחר;כוכב יעקב;כוכב מיכאל;כורזים;כיסופים;כיסרא;כמאנה;כמהין;כנף;כסופים;כסיפה;כסרא;כסרא-סמיע;כעביה-טבאש-חגאגרה;כפאר קאסם;כפר אדומים;כפר אוריה;כפר אורנים;כפר איכסאל;כפר אל עוברה;כפר אלדד;כפר בלום;כפר ברא;כפר גדיידה;כפר גלעדי;כפר דרום;כפר האורנים;כפר הנשיא;כפר זוהרים;כפר זלפה;כפר זמיר;כפר חושן;כפר חרוב;כפר חשן;כפר יאסיף;כפר יובל;כפר יחזקאל;כפר יסיף;כפר יעבץ;כפר יפיע;כפר כסרא;כפר מימון;כפר מרר;כפר נחום;כפר סאלד;כפר סולד;כפר סילבר;כפר סמיע;כפר עזה;כפר עציון;כפר פסוטה;כפר קאסם;כפר קרע;כפר רופין;כפר רות;כפר ריינה;כפר שמאי;כפר תפוח;כפרכפר ברא;כרכום;כרכם;כרם בן זמ;כרם בן זמרה;כרם עמי;כרם שלום;כרמי צור;כרמי קטיף;כרמיה;כרמים;כרמית;כרמל;לבנים;להב;להבות הבשן;להבות חביבה;להבים;לוזית;לוטן;ליבנה;לכיש;לפיד;לקיה;לשם;מ אדומים;מאור;מבוא ביתר;מבוא דותן;מבוא חורון;מבוא חמה;מבואות הגלבוע;מבואות החרמון;מבואות ים;מבואות יריחו;מבועים;מבטחים;מבקיעים;מגד אל-כרום;מגדל שמס;מגאר;מגדו;מגדל עוז;מגדלים;מגידו;מגל;מגן;מגן שאול;מדרך עוז;מדרך עז;מדרשת בן גוריון;מודיעין עילית;מולדה;מולדת;מוסמוס;מועאוויה;אשכול;מרום הגליל;מוקייבלה;מורשת;ניר עקיבא;מושייפרה;מחולה;מחנה בלדד;מחנה חצרים;מחנה נבטים;מחנה סיירים;מחנה עדי;מחנה רמון;מחנה שטים;מטולה;מי עמי;מיגרון;מיטב;מייסר;מיסר;מיצד;מיצר;מירב;מירון;מישור חמד;מישור רותם;מיתר;מיתרים;מכבדא;מכורה;מכחול;מכמורת;מכמרת;מכר;מכרות תמנע;מכתש רמון;מלאה;מלון גלילון;מלילות;מלכיה;מלכישוע;מנוחה;מנוף;מנורה;מנות;מנרה;מנשית זבדה;מסד;מסוף אלנבי;מסילות;מסלות;מסעדה;מסעודין;מסעודין אל-עזאזמה;מע אדומים;מעגלים;מעון;מעיליא;מעיליה;מעין ברוך;מעלה אדומים;מעלה אדמים;מעלה אפרים;מעלה גלבוע;מעלה גלבע;מעלה גמלא;מעלה חבר;מעלה לבונה;מעלה מכמש;מעלה עמוס;מעלה שומרון;מעליא;מעפיל;מפגש הבקעה;מפלסים;מצד;מצדה;מצדות יהודה;מצפה אביב;מצפה אילן;מצפה יריחו;מצפה עדי;מצפה רמון;מצפה שלם;מצר;מרגליות;מרום גולן;מרום הגליל;מרחב עם;מרחבים;מרכז אבשלום;מרכז שפירא;משאבי שדה;משגב;משגב עם;משואה;משואות יצחק;משכיות;משמר הנגב;משמר העמק;משען;מתחם קניאל;מתן;מתקן חולות;מתת;מתתיהו;נאות גולן;נאות הכיכר;נאות הככר;נאות סמדר;נאעורה;נבטים;נבי מוסא;נגידאת;נגבה;נגה;נגוהות;נהורה;נוב;נוגה;נוה;נוה אבות;נוה אור;נוה אטיב;נוה דניאל;נוה זהר;נוה זיו;נוה חלוקים;נוה חריף;נוה מיכאל;נווה;נווה אבות;נווה אור;נווה אטיב;נווה אטיב;נווה דניאל;נווה הרצוג;נווה זוהר;נווה זיו;נווה חריף;נווה מדבר;נווה מיכאל;נווה מנחם;נווה צוף;נועם;נופי נחמיה;נופי פרת;נופים;נוקדים;נורית;נחל אבנת;נחל אלישע;נחל חמדת;נחל נמרוד;נחל עוז;נחל קלע;נחל רותם;נחל רתם;נחל שטים;נחל שיטים;נחל אבנת;נחל אשכולות;נחל חמדת;נחל יתיר;נחל משכיות;נחל נגוהות;נחל נצרים;נחל עוז;נחל עז;נחל צין;נחל קלע;נחל רתם;נחל שטים;נחל שמעה;נחלה;נחליאל;נחניאל;נטועה;נטור;נטע;נטע מרשם;נילי;ניסנית;ניצן;ניצן ב;ניצנה;ניצנה (קהילת חינו;ניצני סיני;ניצני עוז;ניצני שלום;ניצנים;ניר בנים;ניר גלים;ניר דוד-תל עמל;ניר חן;ניר יפה;ניר יצחק;ניר ישראל;ניר משה;ניר עוז;ניר עז;ניר עם;ניר עקיבא;נירים;נירית;נירן;נמרוד;נס הרים;נעלה;נעם;נעמה;נעמי;נערן;נצאצרה;נצאצרה (שבט);נצן;נצנה (קהילת חנוך);נצני סיני;נצני עז;נצנים;נצנים (כפר הנוער);נצר חזני;נצרים;נר יצחק;נריה;נתיב הגדוד;נתיב העשרה;סאגור;סאלם;סאסא;סגולה;סגור;סדום;סואעד-חמרייה;סואעד-כמאנה;סואעד (חמרייה);סואעד כמאנה;סואעד כמאנה (שבט);סואעד שויכי חמריה;סואעד(כמאנה);סוואעד (חמרייה);סוואעד חמיירה;סוסיה;סופה;סחנין;סלמה;סלעית;סמיע;סמר;סנדלה;סנסנה;סעד;סעוה;סער;ספיר;ספסופה;עגר;עגר;עארה;עבדון;עגר;עגר;עדי;עדיעד;עדן;עובדה;עוזה;עוזייר;עולש;עומר;עופרה;עופרים;עוצם;עוקבי;עוקבי (בנו עוקבה);עזוז;עזר;עזריאל;עזריקם;עטאוונה;עטאוונה (שבט);עטאונה;עטרות;עטרות את;עטרת;עידן;עיילבון;עיין השלושה;עיין זיוון;עיין חרוד (איחוד);עילבון;עילוט;עין איברהים;עין אל-אסד;עין בוקק;עין גב;עין גדי;עין הבשור;עין הנציב;עין השלושה;עין זיוון;עין זיון;עין חמד;עין חצבה;עין חרוד (איחוד);עין חרוד (מאוחד);עין יהב;עין כמונים;עין מאהל;עין סהלה;עין עירון;עין צורים;עין קנייא;עין שריד;עין תמר;עינב;עיר אובות;עיר הבהדים;עכברה;עלוט;עלומים;עלי;עלי זהב;עלמה;עלמון;עלש;עמונה;עמיחי;עמיעוז;עמיעז;עמיקם;עמנואל;עמר;ענב;ענתות;עספיא;עפרה;עץ אפרים;עצם;עצמון;עצמון שגב;עראבה;עראמשה;ערד;ערערה;ערערה-בנגב;עשהאל;עתניאל;פארן;פדואל;פני חבר;פני קדם;פסגות;פסוטה;פעמי תשז;פצאיל;פצאל;פרוד;פרזון;פרי גן;צאלים;צבעון;צהר;צוחר;צופים;צופין;צופית;צופר;צוקים;צור הדסה;צור משה;צנדלה;צנדלהן;צריפין;קבועה;קבועה (שבט);קדומים;קדייראת א-צאנע;קדיתא;קדם;קדמת צבי;קדר;קדרים;קדש ברנע;קואעין;קודיראת א-צאנע;קוואעין;קוואעין (שבט);קומראן;קורנית;קטורה;קטיף;קיבוץ אילון;קיבוץ אלון;קיבוץ בית קשת;קיבוץ גת;קיבוץ חניתה;קיבוץ יהל;קיבוץ עין צורים;קידה;קלחים;קליה;קליה;קלנסווה;קלע;קסר א-סיר;קציעות;קציר-חריש;קצר א-סר;קצרין;קריית ארבע;קריית ספר;קרית ארבע;קרית נטפים;קרית ספר;קרני שומרון;קרע;קרע (כפר);קשת;ראס אל-עין;ראס עלי;ראש צורים;רבבה;רביבים;רגבים;רהט;רווחה;רוויה;רוחה;רוחמה;רויה;רומאנה;רומת הייב;רועי;רותם;רותם (נחל);רחוב;רחלים;ריחאניה;ריחן;ריחניה;ריינה;רימונים;רינה;רם-און;רם און;רמונים;רמות;רמות נפתלי;רמת חובב;רמת מגישימים;רמת מגשימים;רמת נגב;רמת צבי;רעים;רפיח ים;רקפת;רשפ לא לשימוש;רשפים;רתמים;שא-נור;שאר ישוב;שבות רחל;שבטה;שבי דרום;שבי שומרון;שבלי;שבלי - אום אל-גנם;שבלי אום אל גנם;שבלים;שגב-שלום;שגב שלום;שגב/עצמון;שגור;שדה אליהו;שדה בוקר;שדה דוד;שדה יואב;שדה יצחק;שדה ניצן;שדה נצן;שדה עוזיהו;שדה עזיהו;שדה צבי;שדות נגב;שדי אברהם;שדי חמד;שדי תרומות;שדמות מחולה;שובה;שובל;שומרה;שומריה;שוקדה;שזפון;שחר;שחרות;שיבולים;שיבטה;שיבלי;שיזף;שיזפון;שיח דנון;שיטים;שייח דנון;שילה;שכניה;שלווה;שלווה במדבר;שלוחות;שלומית- דרום;שלפים;שמיר;שמעה;שמעה (נחל);שמרת;שני;שניר;שעב;שעל;שער אפרים;שער בנימין;שער הנגב;שער מנשה;שערי תקוה;שערי תקווה;שפיר;שפר;שפרעם;שקד;שקף;שרשרת;שתולה;שתולים;תאשור;תדהר;תומר;תושיה;תל חי;תל עמל;תל ערד;תל קציר;תל שבע;תל תאומים;תלם;תלמי אליהו;תלמי בילו;תלמי בילו;תלמי יוסף;תלמי יפה;תלמים;תמנע;תמר {מעצ};תמרה;תקומה;תקוע;תראבין א-צאנע;תראבין א-צאנע יישוב
Categories
וורדפרס

הגבלת גישה בוורדפרס

והנווד.

מתן גישה לעמודי מוצר בווקומרס עבור מבקרים רק דרך טופס החיפוש באתר:

add_action( 'template_redirect', 'condless_redirect' );
function condless_redirect() {
	if ( ! is_user_logged_in() && is_product() && strpos( wp_get_referer(), home_url() . '/?s' ) === false && wc()->cart->get_cart_contents_count() === 0 ) {
		wp_redirect( home_url() );
	}
}

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

add_filter( 'wpcf7_validate_email*', 'condless_email_validation_filter', 20, 2 );
function condless_email_validation_filter( $result, $tag ) {
	if ( Flamingo_Contact::find( array( 's' => trim( $_POST['your-email'] ) ) ) ) {
		$result->invalidate( $tag, __( 'Sorry, that email address is already used!' ) );
	}
        return $result;
}

שמירת קבצים מצורפים בתיקיה שנגישה רק ליוזרים באתר- התקן את התוסף, והתוסף וצור קובץ htaccess. בתיקייה wpcf7-submissions שבתיקיית ההעלאות עם התוכן:

Options -Indexes
RewriteEngine On
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC]
RewriteRule ^(.*)$ - [R=403,L]

כפי שבוודאי שמת לב- בשונה מתבניות ברירות המחדל אחרות, התבנית Twenty Twenty לא פותחה מאפס, אלא נבנתה על בסיס התבנית צ'פלין של אנדרס נורן.

Categories
וורדפרס

פופאפים בוורדפרס

ואמני הג'אז.

התקן את התוסף.

עדכון הלקוח בווקומרס בעמוד מוצר על פספוס הנחה מכיוון שלא רכש ממנו מספיק פריטים- הוסף את הטריגר Auto Open וטרגטינג של עמוד המוצר הרצוי והתנאים המותאמים אישית (עדכן את מזהה המוצר וכמות הפריטים להנחה):

add_filter( 'pum_get_conditions', 'condless_pum_cart_product_quantity_conditions' );
function condless_pum_cart_product_quantity_conditions( $conditions ) {
        return array_merge( $conditions, array(
                'password_page_unlocked' => array(
                        'group'    => __( 'Products', 'woocommerce' ),
                        'name'     => __( 'Products', 'woocommerce' ) . ': ' . __( 'Cart', 'woocommerce' ) . ' ' . __( 'Quantity', 'woocommerce' ),
                        'callback' => 'cart_product_quantity',
                ),
        ) );
}
function cart_product_quantity() {
        foreach ( WC()->cart->get_cart() as $cart_item ) {
                if ( '772' === $cart_item['product_id'] && 3 > $cart_item['quantity'] ) {
                                return true;
                }
        }
        return false;
}

התראה ללקוח בווקומרס שהוא עומד לרוכש מוצר שאינו זמין במלאי כרגע (למוצרים פשוטים)- הפעל את האפשרויות של השורטקודים ושל הקלאסים בכפתור הוספה לסל שבתוסף, צור פופאפ בשם simple_is_on_backorder1 וטרגטינג של All Products, בתוכן הפופאפ הכנס את השורטקוד [current_add_to_cart] והתראה ללקוח על שעומד להוסיף מוצר שאינו זמין כרגע, במידה ומוגדר AJAX בעמוד ארכיון צור פופאפ נוסף עם טריגר Click Open על archive_is_on_backorder1. והאפשרות "do not prevent.." והכנס בתוכן הפופאפ התראה ללקוח על שהוסיף מוצר שאינו זמין כרגע, במידה ולא השתמש בקוד:

add_filter( 'woocommerce_loop_add_to_cart_args', 'condless_add_class', 10, 2 );
function condless_add_class( $args, $product ) {
	if ( $product->is_type( 'simple' ) && $product->is_on_backorder() && ! is_product() && 'no' === get_option( 'woocommerce_enable_ajax_add_to_cart' ) ) {
		$product_id = $product->get_id();
		$args['class'] .= ' popmake-archive_backorder-' . $product_id;
		if ( isset( $product->get_availability()['availability'] ) ) $out = '<div>' . $product->get_availability()['availability'] . '</div>' . '<a href=' . $product->add_to_cart_url() . '>' . $product->add_to_cart_text() . '</a>';
		echo do_shortcode( "[popup id='archive_backorder-" . $product_id . "']" . $out . "[/popup]" );
	}
	return $args;
}

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

Categories
וורדפרס

יצירה אוטומטית של פוסט בוורדפרס

ובחזרה לעתיד.

יצירת פוסט למשתמש ברכישת מוצר מסוים בווקומרס (עדכן את ה-ID של המוצר):

add_action( 'woocommerce_order_status_completed', 'condless_create_page' );
function condless_create_page( $order_id ) {
	foreach ( wc_get_order( $order_id )->get_items() as $item ) {
		if ( '9' === $item->get_product_id() ) {
			$user_id = wc_get_order( $order_id )->get_user_id();
			$user = new WP_User( $user_id );
			$user->remove_role( 'customer' );
			$user->add_role( 'author' );
			wp_insert_post( array( 'post_title' => 'My New Page', 'post_status' => 'publish', 'post_author' => $user_id, 'post_type' => 'post') );
		}
	}
}

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

Categories
ווקומרס - WooCommerce

מכירת מדיה בווקומרס

ואוניברסיטת ההמונים.

מכירת גישה למדיה דיגיטלית (עמודי תוכן, קורסי וידאו, תמונות, מוזיקה):

  • עקוב אחר ההוראות שבמדריך
  • התאם את התוסף לעברית:
add_action( 'admin_head', 'condless_admin_custom_css' );
function condless_admin_custom_css() {
	echo '<style> .chosen-container .chosen-drop { left: 9999px; } </style>';
}
  • הוסף בשדה "הערת רכישה" שבמוצר קישור לעמוד בו המדיה מוטמעת
  • הפעל הגנת תוכן עם התוסף
  • במידה והמדיה מאוחסנת בתיקיית המדיה של האתר חסום גישה ישירה אליה, בטל את האפשרות לשיטוט קבצים ול-hotlinking עם התוסף
  • הגבל התחברות ממכשיר אחד בלבד עם התוסף
  • הפעל אימות דו-שלבי

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