ברוכים הבאים ל-LEMON!

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

הרשמו לניוזלטר

הרשמו עכשיו וקבלו עדכון מיידי בכל פעם שעולה תוכן חדש לאתר.

קבוצת LEMON בפייסבוק

אתם מוזמנים להצטרף!

איך ליצור איזורים למשתמשים רשומים בלבד מבלי להשתמש בתוספים – חלק 1

מכירים את זה שלקוח מבקש מכם ליצור איזור למשתמשים רשומים בלבד?

אז יש דרך לעשות את זה עם כמה שורות קוד בלבד מבלי להשתמש בתוספים כמו Membership Pro או Wishlist Membership למינהם.

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

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

אנחנו יכולים לקחת אותו על ידי כניסה לטאב של הפוסטים בפאנל הניהול של וורדפרס והעתקה שלו מכתובת ה-URL.

(איך להעתיק את כתובת ה-SLUG של CPT)

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

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

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

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

אני עיצבתי את העמוד הבא:

(עמוד "גישה מוגבלת" עם קידום הרשמה לניוזלטר של האתר)

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

את כתובת העמוד אנחנו לוקחים מאיזור העריכה של הדף:

(איך להעתיק את ה-SLUG של העמוד)

הוספת קוד ל-functions.php

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

function dorshiff_restrict_post_types_to_registered_users() {
	if (in_array(get_post_type(), ['workshops']) && !is_archive() && !is_user_logged_in()) {
		wp_redirect(get_site_url() . '/access-denied/');
		exit;
	}
}

add_action('template_redirect', 'dorshiff_restrict_post_types_to_registered_users');Code language: PHP (php)
  • איפה שכתוב "workshops" נחליף ב-SLUG של ה-CPT שהעתקנו בשלב הראשון.
  • איפה שכתוב "access-denied" נחליף ב-SLUG של העמוד שהעתקנו בשלב השני.

לאחר מכן, אנחנו שומרים את הקובץ ומרעננים CACHE באתר במידה ויש.

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

function dorshiff_restrict_post_types_to_registered_users() {
	if (in_array(get_post_type(), ['workshops']) && !is_user_logged_in()) {
		wp_redirect(get_site_url() . '/access-denied/');
		exit;
	}
}

add_action('template_redirect', 'dorshiff_restrict_post_types_to_registered_users');Code language: PHP (php)

גם כאן כמובן, יש להתאים את הפרמטרים לאתר שלכם

  • איפה שכתוב "workshops" נחליף ב-SLUG של ה-CPT שהעתקנו בשלב הראשון.
  • איפה שכתוב "access-denied" נחליף ב-SLUG של העמוד שהעתקנו בשלב השני.

סיכום ובדיקות

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

עדכון 27/12/2021

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

איך ליצור איזורים למשתמשים רשומים בלבד מבלי להשתמש בתוספים – חלק 2

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

מוזמנים לשאול בפייסבוק!

2 תגובות

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

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

כתיבת תגובה

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

לשאלות / בקשות / בעיות / כל דבר אחר… צרו איתנו קשר :)

הרשמו לניוזלטר

הרשמו עכשיו וקבלו עדכון מיידי בכל פעם שעולה תוכן חדש לאתר.