View Categories

Hackeru plugin form

2 min read

תוסף לוורדפרס שלנו שמתחבר לכל טופס והוסף את השדות.

כדי להתקין את התוסף צריך את הקובץ ZIP שלו.

קישור ל GIT
git clone https://VitaliyOlshanetsky@bitbucket.org/hackeru-il/hackeru-il-plugin.git

המבנה קבצים שלו.

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

קובץ הראשון זה info.json נגיד עכשיו הגרסה שלנו 1.0.47 אמחמו משנים אותה ל- 1.0.48

קובץ השני זה hackeru-plugin.php גם משנים לאותה גרסה מה שעשינו בקובץ INFO.JSON

מה שחשוב לנו פה נמצא בקבצים hackeru-plugin.php ו hackeru_plugin.js פה יש לנו את כל הלוגיקה.

נתחיל מה-JS בחלק הראשון אנחנו טופסים את הטופס אחרי לחיצה של השליחה והוספים את כל השדות

$buildSpinner.start() מוסיף אנימציה של שליחת טופס. אחרי ההוספה של השדות נעשה עליהם ולידציה שעברה ל SENDAJAX.

ה- URL מוביל ל-AJAX של וורדפרס

ואז אחרי ש-AJAX מתחיל לעבוד נכנסות פונקציות אחרות

ב-apiSend יש לנו את הלוגיקה של השדות ואז זה נשלח ל-API שלנו בעזרת CURL

לוג לשמירת ליד במידה שהתשובה מ-API לא חיובית. נוצר קובץ לוג בתיקיה ראשית של השרת בנוסף נשלח מייל.

function createFileLog($data_post, $res = NULL) {

    if ( empty($data_post) ) { return false; }

    if ( ! defined( 'ABSPATH' ) ) {
        define( 'ABSPATH', dirname(__DIR__) . '../../' );
    }

    if (!file_exists(ABSPATH . '/logs_leads')) {
        mkdir(ABSPATH . '/logs_leads', 0775, true);
    }

    $file_log = fopen(ABSPATH . '/logs_leads/' ."log_lead_". date("YmdHis", time()) ."_". mt_rand() .".txt", "w");
    if ( $file_log ) {
        $file_log_data = '';
        $file_log_data = json_encode($data_post) . "\n";
        if ( !empty($res) ) {
            $file_log_data .= "######\n". json_encode($res) . "\n";
        }
        fwrite($file_log, $file_log_data);
        fclose($file_log);
        $message = "New a log file lead created.\n"
                    ."SP: $data_post[sp]\n"
                    ."Name: $data_post[firstname]\n"
                    ."Phone: $data_post[mobilephone]\n"
                    ."Email: $data_post[emailaddress]\n";

        wp_mail('vitaliy.o@thrivedx.com', 'NOTICE from hackeru plugin: New a log file created.', $message);
    } else {
        wp_mail('vitaliy.o@thrivedx.com', 'NOTICE from hackeru plugin: There is a problem creating file.', 'There is a problem creating the log file.');
    }
}