פעולות מנהל

פעולות המנהל מבוצעות באמצעות Ajax (הפעלת פקודה ביוזמת javascript בעמדה אל השרת). המידע מועבר ב POST. (להבדיל מ GET שבו הפרמטרים מועברים בשורת הפקודה).

משתף לגבי הבנות לגבי פעולת עדכון הזמנה בעמדת המנהל. הכפתור מפעיל את הפקודה

calc_line_taxes.

ניסיתי לבצע פעולה נוספת ע"י הוספת פונקציה:
add_action('wp_ajax_woocommerce_calc_line_taxes', array($this, 'update_prices'), 9);

לאחר חפירה התברר כך:
- פעולה השרת מתבסס על שדה items המועבר ב POST ולא ע"ב המידע השמור ב-DB. הדבר נכון, היות שפעולת המנהל המצופה היא על ההזמנה כפי שמוצגת ולא על ההזמנה השמורה.
- מכאן שבמידה ורוצים לשנות את תוכן ההזמנה אין אפשרות לבצע לפני הפעולה המקורית של WooCommerce על ההזמנה כי המידע ידרס בפונקציה calc_line_taxes, הכוללת פרסור של items.
- ולא ניתן לבצע אחרי, מאחר ש calc_line_taxes מסתיימת ב wp_die.
- אם כך האלטרנטיבה היא להחליף את calc_line_taxes בפונקציה שעושה את הכל. אם נשים את הפונקציה החדשה בעדיפות גבוהה (מספר קטן מ-10) היא תרוץ לפני calc_line_taxes!



 

כתיבת תגובה

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