( ! ) Notice: Undefined property: stdClass::$ID in /var/www/efresh/wp-includes/class-wp-user.php on line 171
Call Stack
#TimeMemoryFunctionLocation
10.0001360760{main}( ).../index.php:0
20.0002362008require( '/var/www/efresh/wp-blog-header.php' ).../index.php:17
30.0002362392require_once( '/var/www/efresh/wp-load.php' ).../wp-blog-header.php:13
40.0003363096require_once( '/var/www/efresh/wp-config.php' ).../wp-load.php:37
50.0003364376require_once( '/var/www/efresh/wp-settings.php' ).../wp-config.php:98
60.540746409680do_action( ).../wp-settings.php:560
70.540746410056WP_Hook->do_action( ).../plugin.php:484
80.540746410056WP_Hook->apply_filters( ).../class-wp-hook.php:316
90.848957106808init_focus( ).../class-wp-hook.php:292
100.848957106808run_focus( ).../focus.php:59
111.161258335024Focus->run( ).../focus.php:40
121.167058357952Focus->install( ).../class-focus.php:440
131.168258380856is_admin_user( ).../class-focus.php:203
141.168258381048WP_User->__construct( ).../wp.php:64
151.168258381048WP_User->init( ).../class-wp-user.php:136

( ! ) Warning: Cannot modify header information - headers already sent by (output started at /var/www/efresh/wp-includes/class-wp-user.php:171) in /var/www/efresh/wp-includes/feed-rss2.php on line 8
Call Stack
#TimeMemoryFunctionLocation
10.0001360760{main}( ).../index.php:0
20.0002362008require( '/var/www/efresh/wp-blog-header.php' ).../index.php:17
32.147860022040require_once( '/var/www/efresh/wp-includes/template-loader.php' ).../wp-blog-header.php:19
42.162661003680do_feed( ).../template-loader.php:48
52.163061003720do_action( ).../functions.php:1579
62.163061004096WP_Hook->do_action( ).../plugin.php:484
72.163061004096WP_Hook->apply_filters( ).../class-wp-hook.php:316
82.163061005224do_feed_rss2( ).../class-wp-hook.php:294
92.163061005304load_template( ).../functions.php:1617
102.164561020696require_once( '/var/www/efresh/wp-includes/feed-rss2.php' ).../template.php:730
112.164661020776header ( ).../feed-rss2.php:8
https://e-fresh.co.il Fri, 09 Jul 2021 07:12:38 +0000 he-IL hourly 1 https://wordpress.org/?v=5.7.2 https://e-fresh.co.il/wp-content/uploads/2020/06/cropped-אייקון2-2-32x32.png https://e-fresh.co.il 32 32 חלונית חיפוש https://e-fresh.co.il/%d7%97%d7%9c%d7%95%d7%a0%d7%99%d7%aa-%d7%97%d7%99%d7%a4%d7%95%d7%a9/ https://e-fresh.co.il/%d7%97%d7%9c%d7%95%d7%a0%d7%99%d7%aa-%d7%97%d7%99%d7%a4%d7%95%d7%a9/#respond Fri, 09 Jul 2021 05:39:13 +0000 https://e-fresh.co.il/?p=7067 Read More »חלונית חיפוש]]> תבנית עליה התבססה החנות של פרוטי כללה חלונית חיפוש. לאחר שעברנו לעבוד עם אלמנטור, החיפוש הייתה נקודת חולשה. חלונית החיפוש של אלמנטור מחפשת פריטים כללים (לא מוצרים) וגם לא ניתן לשנות אותה.

ניסיתי את התוסף search&filter. מאוד גמיש לכאורה, אך בעצם מורכב מאוד לשימוש. יש לו תכונה נפלאה של חיפוש AJAX אך הוא לא עובד, אלא אם משתמשים בדיוק בהרכב ה html-tags הנכון.

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

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

התוסף search in place:

  • אחרי שמקלידים שלוש אותיות, התוצאות מופיעות מתחת לחלונית החיפוש.
  • מחפש בכל האתר, גם פוסטים וגם מוצרים.
  • שם המחבר מופיע מתחת למוצר. פחות רלוונטי.
  • לחיצה על enter מעבירה לדף חיפוש, שמחפש רק פוסטים (ולא מוצרים) (כנראה זה משהו לשנות בצד שרת).
  • (מעניין מאיפה הוא שלף את המילה “קיפח” בהקשר של גזר).
  • במובייל של פרוטי חלונית החיפוש נפתחת בנפרד מסרגל התחתון. מקפיץ חלונית חיפוש של התוסף. התוצאות נראות בחלונית קופצת (לא בדף). יש More Results שמעביר לדף החיפוש הכללי (שוב, רק פוסטים ולא מוצרים).

האם ניתן שהתוצאות יתעדכנו בדף ולא בחלונית קטנה?

תוסף נוסף – FiboSearch

  • מציג את התוצאות בדומה לתוסף הקודם.
  • לא מציג פוסטים.
  • לחיצה על enter מעביר לדף חיפוש.
  • בנייד: החלונית שמוטמעת לא מפעילה את הajax.
  • קיימת גרסת פרו.

דוגמא לטיפול בחיפוש

 

 

]]>
https://e-fresh.co.il/%d7%97%d7%9c%d7%95%d7%a0%d7%99%d7%aa-%d7%97%d7%99%d7%a4%d7%95%d7%a9/feed/ 0
איפוס כרטסת ספק https://e-fresh.co.il/%d7%90%d7%99%d7%a4%d7%95%d7%a1-%d7%9b%d7%a8%d7%98%d7%a1%d7%aa-%d7%a1%d7%a4%d7%a7/ https://e-fresh.co.il/%d7%90%d7%99%d7%a4%d7%95%d7%a1-%d7%9b%d7%a8%d7%98%d7%a1%d7%aa-%d7%a1%d7%a4%d7%a7/#respond Mon, 08 Mar 2021 04:44:21 +0000 https://e-fresh.co.il/?p=3318 לפעמים משהו לא מסתדר ביתרה…

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

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

]]>
https://e-fresh.co.il/%d7%90%d7%99%d7%a4%d7%95%d7%a1-%d7%9b%d7%a8%d7%98%d7%a1%d7%aa-%d7%a1%d7%a4%d7%a7/feed/ 0
שגיאה ב Phpmyadmin https://e-fresh.co.il/%d7%a9%d7%92%d7%99%d7%90%d7%94-%d7%91-phpmyadmin/ https://e-fresh.co.il/%d7%a9%d7%92%d7%99%d7%90%d7%94-%d7%91-phpmyadmin/#respond Mon, 28 Dec 2020 01:57:44 +0000 https://e-fresh.co.il/?p=3282 כדאי לשדרג לגרסא 5.0.4:

cd /usr/share/
mv phpmyadmin phpmyadmin.old
wget https://files.phpmyadmin.net/phpMyAdmin/5.0.4/phpMyAdmin-5.0.4-all-languages.zip
tar xvf phpMyAdmin-5.0.4-all-languages.zip
unzip phpMyAdmin-5.0.4-all-languages.zip
mv phpMyAdmin-5.0.4-all-languages phpmyadmin

בעיה ישנה שאולי עדיין רלוונטית קשור ל SSL:

https://stackoverflow.com/questions/41824164/phpmyadmin-4-6-6-openssl-error

]]>
https://e-fresh.co.il/%d7%a9%d7%92%d7%99%d7%90%d7%94-%d7%91-phpmyadmin/feed/ 0
Debugging https://e-fresh.co.il/debugging/ https://e-fresh.co.il/debugging/#respond Thu, 26 Nov 2020 14:28:44 +0000 https://e-fresh.co.il/?p=3260 Read More »Debugging]]>

נראה מספר דרכים לבצע Debugging כאשר משהו בקוד לא עובד.

 

  1. הדפסה – אם מדובר בפונקציה שמוציאה פלט לדף ה-wordpress ניתן להוסיף שורה כמו:
    print “var = “. $var על מנת לראות מה הפלט של המשתנה שאנו חושדים בו.
  2. הוספת “התראה” לפונקציה שברגע שנכנסים אליה יודפס לוג לשרת. השורה שנוסיף לפונקציה היא
    FocusLog(__FUNCTION__);
    אל השרת ניתן להתחבר באמצעות ssh, להריץ את הפקודה logs ואז להריץ את הפקודה tail -f focus.log כדי לראות את הפונקציות שמופעלות ב-focus.
  3. חלונית inspet – 
    שמה ניתן לדבאג צעד צעד את קוד ה-javaScript ובמידה ומגיעים לפונקציה שמחזירה url לקבל ממנה את ערך החזרה ולפתוח אותו בחלונית נפרדת על מנת לראות אם מופיעות שמה שגיאות.
]]>
https://e-fresh.co.il/debugging/feed/ 0
hooks בפלאגינים שלנו https://e-fresh.co.il/hooks-%d7%91%d7%a4%d7%9c%d7%90%d7%92%d7%99%d7%a0%d7%99%d7%9d-%d7%a9%d7%9c%d7%a0%d7%95/ https://e-fresh.co.il/hooks-%d7%91%d7%a4%d7%9c%d7%90%d7%92%d7%99%d7%a0%d7%99%d7%9d-%d7%a9%d7%9c%d7%a0%d7%95/#respond Tue, 24 Nov 2020 08:22:19 +0000 https://e-fresh.co.il/?p=3253 Read More »hooks בפלאגינים שלנו]]> רקע כללי

בוורדפרס משתמשים בשלוש סוגי הרחבות.

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

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

פעולה – משמש לצורך הפעלה של עיבוד או הצגה של תוכן.

הבדלים בין השלושה:

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

ישום בחבילות שלנו

Core_Loader

מטפל ברישום הפעולות והפילטרים. הפלאגינים מוסיפים את הפעולות והפילטרים באמצעות AddAction ו AddFilter.

AddAction

  1. מניח ששם הפונקציה כשם הפעולה.
  2. אם קיימת פונקציה בשם הפעולה בתוספת _wrap, הוא משתמש בה. המטרה היא ליצור מעטפת שמטפלת בפרמטרים וכד’.
  3. רושם את הפונקציה לרישום מרוכז בוורדפרס בהמשך.
public function AddAction( $hook, $component, $callback = null, $priority = 10, $accepted_args = 1 ) {
   if (!$callback) $callback = $hook;
   if (is_callable(array($component, $callback . "_wrap"))) $callback .= "_wrap";
   if ($this->debug) MyLog(__FUNCTION__ . " $hook");
   $this->actions = $this->add( $this->actions, $hook, $component, $callback, $priority, $accepted_args );
}

Core_Shortcodes

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

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

בדומה לתוסף _wrap של הפעולות, התוספת _wrapper משתמש לשורטקודס.

דוגמא לאופן השימוש בפלאגינים

נדגים באמצעות הדף הראשי של פוקוס – focus_main.

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

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

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

מאחר ופעולה אינה מחזירה מחרוזת, נשתמש בפונקציות ob.

if ($operation) {
   $table_name = self::TableFromOperation( $operation );
   $args = self::Args( $table_name );
   ob_start();
   do_action($operation, $args);
   return ob_get_clean();
}

הפונקציה הראשונה, ob_start, מכריזה שכל הפלט מרגע זה, יאגר במחרוזת פנימית. הפונקציה השנייה, ob_get_clean, מחזירה אל הפונקציה שלנו את הפלט שהצטבר.

]]>
https://e-fresh.co.il/hooks-%d7%91%d7%a4%d7%9c%d7%90%d7%92%d7%99%d7%a0%d7%99%d7%9d-%d7%a9%d7%9c%d7%a0%d7%95/feed/ 0
הרשאות במערכת הקבצים https://e-fresh.co.il/%d7%94%d7%a8%d7%a9%d7%90%d7%95%d7%aa-%d7%91%d7%9e%d7%a2%d7%a8%d7%9b%d7%aa-%d7%94%d7%a7%d7%91%d7%a6%d7%99%d7%9d/ https://e-fresh.co.il/%d7%94%d7%a8%d7%a9%d7%90%d7%95%d7%aa-%d7%91%d7%9e%d7%a2%d7%a8%d7%9b%d7%aa-%d7%94%d7%a7%d7%91%d7%a6%d7%99%d7%9d/#respond Wed, 28 Oct 2020 15:33:50 +0000 https://e-fresh.co.il/?p=2071 Read More »הרשאות במערכת הקבצים]]> תיקיית הקבצים שהמערכת מותקנת מתעדכנת:

  • תקיית wp-content/plugins – עדכוני גרסא של הפלאגינים השונים. שלנו ובכלל.
  • תיקיית wp-content/uploads – תיקייה אליה מעודכנים קבצים המדיה שמועלים לאתר (במבנה year/month). וגם תיקיית logs. אליה הפלאגינים שלנו רושמים הודעת דיבאג.

Warning: error_log(/var/www/html/wp-content/uploads/wc-logs/focus.log): failed to open stream: Permission denied in /var/www/html/wp-content/plugins/flavor/includes/core/fund.php on line 33

כדי להבטיח שיש הרשאות מתאימות נתחבר לשרת

chown -R www-data:www-data /var/www/html

יוזר www-data הוא היוזר שמריץ את ה PHP.

 

]]>
https://e-fresh.co.il/%d7%94%d7%a8%d7%a9%d7%90%d7%95%d7%aa-%d7%91%d7%9e%d7%a2%d7%a8%d7%9b%d7%aa-%d7%94%d7%a7%d7%91%d7%a6%d7%99%d7%9d/feed/ 0
התקנת soap https://e-fresh.co.il/%d7%94%d7%aa%d7%a7%d7%a0%d7%aa-soap/ https://e-fresh.co.il/%d7%94%d7%aa%d7%a7%d7%a0%d7%aa-soap/#comments Wed, 28 Oct 2020 13:07:38 +0000 https://e-fresh.co.il/?p=2067 חבילת הפעלה מרחוק שנדרשת לשירות ה invoice4u

Soap

php-config –configure-options –enable-soap

sudo apt-get install php-soap

sudo apt-get install -y libxml2-dev

 sudo systemctl restart apache2

]]>
https://e-fresh.co.il/%d7%94%d7%aa%d7%a7%d7%a0%d7%aa-soap/feed/ 1
העברת דומין https://e-fresh.co.il/%d7%94%d7%a2%d7%91%d7%a8%d7%aa-%d7%93%d7%95%d7%9e%d7%99%d7%9f/ https://e-fresh.co.il/%d7%94%d7%a2%d7%91%d7%a8%d7%aa-%d7%93%d7%95%d7%9e%d7%99%d7%9f/#respond Fri, 23 Oct 2020 03:41:34 +0000 https://e-fresh.co.il/?p=2021 Read More »העברת דומין]]> במידה ונראה להעביר שרת וורדפרס מדומין אחד למשנהו יש לטפל בנושאים הבאים:

  • ראשית להגדיר את הדומיין באחד מרשמי האינטרנט. למשל godaddy. לאחר הגדרת השם החדש, יחלפו כמה שעות עד אשר השם החדש יהיה מוגדר.
  • ברמת הלינוקס – נשנה את שם ב /etc/hosts
  • שרת אפצ’י – יש לשנות ב /etc/apache2/sites-avaiable
  • ליצר תעודת SSL
  • ב DB לעדכן את wp_options (רשומות 1, 2)
  • לשנות את הנתיב של הדבוקות במידה והמבנה של הקבצים השתנה. upload_path ב wp_options.
]]>
https://e-fresh.co.il/%d7%94%d7%a2%d7%91%d7%a8%d7%aa-%d7%93%d7%95%d7%9e%d7%99%d7%9f/feed/ 0
phpmyadmin https://e-fresh.co.il/phpmyadmin/ https://e-fresh.co.il/phpmyadmin/#respond Mon, 05 Oct 2020 08:17:05 +0000 https://e-fresh.co.il/?p=2012 Read More »phpmyadmin]]> Phpmyadmin הוא ממשק ידידותי לעבודה עם נתוני MySql.

כדי להתקין על השרת יש להתחבר בטרמינל ולבצע

  • sudo apt update

sudo apt install phpmyadmin php-mbstring

יפתח חלון טקסטואלי. יש לבחור apache

לאחר מכן יפתח חלון לבחור את בסיס הנתונים. יש לבחור Yes

בשלב הבא יש לבחור סיסמא עבור יוזר phpmyadmin. לבחור סיסמא מורכב בת 16 סימנים. לשמור בצורה מאובטחת. להקיש שוב.

להפעיל מודול mbstring ולאתחל את apache2

sudo phpenmod mbstring

sudo systemctl restart apache2

כעת יש לתת הרשאות ליוזר phpmyadmin לבסיס הנתונים

GRANT ALL PRIVILEGES ON <db_name>.* TO ‘phpmyadmin’@’localhost’ WITH GRANT OPTION;

פרטים נוספים בקובץ המקור.

]]>
https://e-fresh.co.il/phpmyadmin/feed/ 0
פרמטרים לפונקציות CORE https://e-fresh.co.il/args/ https://e-fresh.co.il/args/#respond Thu, 01 Oct 2020 13:40:21 +0000 https://e-fresh.co.il/?p=2008 Read More »פרמטרים לפונקציות CORE]]> לפונקציות תשתית נעביר באמצעות args$ פרמטרים הקובעים את דרך הפעולה.

only_active

  • קובע האם להציג את כל הרשומות או רק את אלא הפעילות (is_active=1). ערך ברירת מחדל = 2 (לא יבוצע כלום). ערך = 1: יוצגו רק הפעילים. ערך = 0: יוצג הכל.
  • משפיע על השאילתה שמועברת לבסיס הנתונים.
  • מוסיף לכותרת Active או All.
  • מוסיף לינק לאחר הטבלה. (All/Active).
  • כרגע מיושם ב GemTable.

prepare_plug

  • שם של פונקציה לעיבוד רשומה (כחלק מ PrepareRow) לפני שהיא נכנסת לטבלה –
    gui_table_args.
]]>
https://e-fresh.co.il/args/feed/ 0