{"id":636,"date":"2025-06-22T12:12:12","date_gmt":"2025-06-22T12:12:12","guid":{"rendered":"https:\/\/expressbus.eg\/expressbus-register\/"},"modified":"2025-09-09T13:10:59","modified_gmt":"2025-09-09T13:10:59","slug":"expressbus-register","status":"publish","type":"page","link":"https:\/\/expressbus.eg\/ar\/expressbus-register\/","title":{"rendered":"\u062a\u0633\u062c\u064a\u0644 \u062d\u0633\u0627\u0628 \u062c\u062f\u064a\u062f"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"636\" class=\"elementor elementor-636\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9b1c445 e-grid e-con-full e-con e-parent\" data-id=\"9b1c445\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-f677677 e-flex e-con-boxed e-con e-child\" data-id=\"f677677\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-948ab1f elementor-widget elementor-widget-image\" data-id=\"948ab1f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"722\" height=\"630\" src=\"https:\/\/expressbus.eg\/wp-content\/uploads\/2025\/05\/User-Register.jpg\" class=\"attachment-large size-large wp-image-88\" alt=\"\" srcset=\"https:\/\/expressbus.eg\/wp-content\/uploads\/2025\/05\/User-Register.jpg 722w, https:\/\/expressbus.eg\/wp-content\/uploads\/2025\/05\/User-Register-300x262.jpg 300w\" sizes=\"(max-width: 722px) 100vw, 722px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f5c2c92 e-flex e-con-boxed e-con e-child\" data-id=\"f5c2c92\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-19644af elementor-widget elementor-widget-heading\" data-id=\"19644af\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Register<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c0ecf25 e-flex e-con-boxed e-con e-child\" data-id=\"c0ecf25\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f27c185 elementor-widget elementor-widget-html\" data-id=\"f27c185\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"expressbus-wrapper\">\n<div class=\"expressbus-register-form-container\">\n    <div class=\"expressbus-form-wrapper\">\n                    <h2 class=\"expressbus-form-title\">Create an Account<\/h2>\n                \n        <div id=\"expressbus-register-messages\" class=\"expressbus-messages\"><\/div>\n        \n        <form id=\"expressbus-register-form\" class=\"expressbus-form\" method=\"post\">\n            <div class=\"expressbus-form-group\">\n                <input type=\"text\" id=\"expressbus-name\" name=\"name\" class=\"expressbus-form-control\" placeholder=\"\u0627\u0644\u0627\u0633\u0645 \u0627\u0644\u0643\u0627\u0645\u0644\" required>\n            <\/div>\n            \n            <div class=\"expressbus-form-group\">\n                <input type=\"tel\" id=\"expressbus-phone\" name=\"phone\" class=\"expressbus-form-control\" placeholder=\"\u0631\u0642\u0645 \u0627\u0644\u0647\u0627\u062a\u0641\" required>\n            <\/div>\n            \n            <div class=\"expressbus-form-group\">\n                <input type=\"email\" id=\"expressbus-reg-email\" name=\"email\" class=\"expressbus-form-control\" placeholder=\"\u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a (\u0627\u062e\u062a\u064a\u0627\u0631\u064a)\">\n            <\/div>\n            \n            <div class=\"expressbus-form-group\">\n                <input type=\"password\" id=\"expressbus-reg-password\" name=\"password\" class=\"expressbus-form-control\" placeholder=\"\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631\" required>\n            <\/div>\n            \n            <div class=\"expressbus-form-group\">\n                <input type=\"password\" id=\"expressbus-confirm-password\" name=\"password_confirmation\" class=\"expressbus-form-control\" placeholder=\"\u062a\u0623\u0643\u064a\u062f \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631\" required>\n            <\/div>\n            \n            <div class=\"expressbus-form-group\">\n                <label class=\"expressbus-checkbox-label\">\n                    <input type=\"checkbox\" id=\"expressbus-terms\" name=\"terms\" value=\"1\" required>\n                    \u0623\u0648\u0627\u0641\u0642 \u0639\u0644\u0649 \u0627\u0644\u0634\u0631\u0648\u0637 \u0648\u0627\u0644\u0623\u062d\u0643\u0627\u0645                <\/label>\n            <\/div>\n            \n            <div class=\"expressbus-form-group\">\n                <button type=\"submit\" class=\"expressbus-btn expressbus-btn-primary\">\n                    Register                <\/button>\n            <\/div>\n            \n            <input type=\"hidden\" id=\"expressbus_register_nonce\" name=\"expressbus_register_nonce\" value=\"64724a5ddf\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/ar\/wp-json\/wp\/v2\/pages\/636\" \/>        <\/form>\n        \n        <div class=\"expressbus-form-links\">\n                                            <a href=\"https:\/\/expressbus.eg\/ar\/expressbus-login\/\" class=\"expressbus-link\">\n                    \u0644\u062f\u064a\u0643 \u062d\u0633\u0627\u0628 \u0628\u0627\u0644\u0641\u0639\u0644\u061f \u0633\u062c\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0647\u0646\u0627                <\/a>\n                    <\/div>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\njQuery(document).ready(function($) {\n    var $nameField = $('#expressbus-name');\n    var $phoneField = $('#expressbus-phone');\n    \n    \/\/ Validate name field: Only Arabic and English letters and spaces\n    $nameField.on('input', function() {\n        var value = $(this).val();\n        \/\/ Remove any characters that are not Arabic letters, English letters, or spaces\n        var cleaned = value.replace(\/[^\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB50-\\uFDFF\\uFE70-\\uFEFFa-zA-Z\\s]\/g, '');\n        if (value !== cleaned) {\n            $(this).val(cleaned);\n        }\n    });\n    \n    \/\/ Validate phone field: Only + at the beginning and numbers\n    $phoneField.on('input', function() {\n        var value = $(this).val();\n        \/\/ Remove any characters that are not + or digits\n        var cleaned = value.replace(\/[^+\\d]\/g, '');\n        \/\/ Ensure + is only at the beginning (if present)\n        if (cleaned.indexOf('+') !== -1) {\n            if (cleaned.charAt(0) === '+') {\n                \/\/ Keep + at start, remove all other + signs\n                cleaned = '+' + cleaned.substring(1).replace(\/\\+\/g, '');\n            } else {\n                \/\/ Remove all + signs if not at the beginning\n                cleaned = cleaned.replace(\/\\+\/g, '');\n            }\n        }\n        if (value !== cleaned) {\n            $(this).val(cleaned);\n        }\n    });\n    \n    $('#expressbus-register-form').on('submit', function(e) {\n        e.preventDefault();\n        \n        var $form = $(this);\n        var $messages = $('#expressbus-register-messages');\n        var $submitBtn = $form.find('button[type=\"submit\"]');\n        \n        \/\/ Clear previous messages\n        $messages.empty();\n        \n        \/\/ Validate name: Only Arabic and English letters and spaces\n        var name = $nameField.val();\n        var namePattern = \/^[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB50-\\uFDFF\\uFE70-\\uFEFFa-zA-Z\\s]+$\/;\n        if (!namePattern.test(name)) {\n            $messages.html('<div class=\"expressbus-error\">\u0627\u0644\u0627\u0633\u0645 \u064a\u0645\u0643\u0646 \u0623\u0646 \u064a\u062d\u062a\u0648\u064a \u0641\u0642\u0637 \u0639\u0644\u0649 \u0627\u0644\u0623\u062d\u0631\u0641 \u0627\u0644\u0639\u0631\u0628\u064a\u0629 \u0648\u0627\u0644\u0625\u0646\u062c\u0644\u064a\u0632\u064a\u0629 \u0648\u0627\u0644\u0645\u0633\u0627\u0641\u0627\u062a.<\/div>');\n            return;\n        }\n        \n        \/\/ Validate phone: Only + and numbers\n        var phone = $phoneField.val();\n        var phonePattern = \/^\\+?[0-9]+$\/;\n        if (!phonePattern.test(phone)) {\n            $messages.html('<div class=\"expressbus-error\">\u0631\u0642\u0645 \u0627\u0644\u0647\u0627\u062a\u0641 \u064a\u0645\u0643\u0646 \u0623\u0646 \u064a\u062d\u062a\u0648\u064a \u0641\u0642\u0637 \u0639\u0644\u0649 + \u0648\u0627\u0644\u0623\u0631\u0642\u0627\u0645.<\/div>');\n            return;\n        }\n        \n        \/\/ Validate password confirmation\n        var password = $('#expressbus-reg-password').val();\n        var confirmPassword = $('#expressbus-confirm-password').val();\n        \n        if (password !== confirmPassword) {\n            $messages.html('<div class=\"expressbus-error\">\u0643\u0644\u0645\u0627\u062a \u0627\u0644\u0645\u0631\u0648\u0631 \u063a\u064a\u0631 \u0645\u062a\u0637\u0627\u0628\u0642\u0629.<\/div>');\n            return;\n        }\n        \n        \/\/ Disable submit button\n        $submitBtn.prop('disabled', true).text('\u062c\u0627\u0631\u064a \u0625\u0646\u0634\u0627\u0621 \u0627\u0644\u062d\u0633\u0627\u0628...');\n        \n        \/\/ Get redirect_to from URL parameter\n        var urlParams = new URLSearchParams(window.location.search);\n        var redirectTo = urlParams.get('redirect_to') || '';\n        \n        \/\/ Get form data\n        var formData = {\n            action: 'expressbus_register',\n            name: $('#expressbus-name').val(),\n            phone: $('#expressbus-phone').val(),\n            email: $('#expressbus-reg-email').val(), \/\/ Optional\n            password: password,\n            password_confirmation: confirmPassword,\n            terms: $('#expressbus-terms').is(':checked') ? 1 : 0,\n            nonce: $('input[name=\"expressbus_register_nonce\"]').val(),\n            redirect_to: redirectTo\n        };\n        \n        \/\/ Make AJAX request\n        $.ajax({\n            url: expressbus_data.ajax_url,\n            type: 'POST',\n            data: formData,\n            success: function(response) {\n                if (response.success) {\n                    $messages.html('<div class=\"expressbus-success\">' + response.data.message + '<\/div>');\n                    \n                    \/\/ Redirect after successful registration\n                    if (response.data.redirect_url) {\n                        window.location.href = response.data.redirect_url;\n                    } else {\n                        window.location.reload();\n                    }\n                } else {\n                    $messages.html('<div class=\"expressbus-error\">' + response.data.message + '<\/div>');\n                }\n            },\n            error: function() {\n                $messages.html('<div class=\"expressbus-error\">\u062d\u062f\u062b \u062e\u0637\u0623. \u064a\u0631\u062c\u0649 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629 \u0645\u0631\u0629 \u0623\u062e\u0631\u0649.<\/div>');\n            },\n            complete: function() {\n                \/\/ Re-enable submit button\n                $submitBtn.prop('disabled', false).text('Register');\n            }\n        });\n    });\n});\n<\/script><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u062a\u0633\u062c\u064a\u0644 \u062d\u0633\u0627\u0628 \u062c\u062f\u064a\u062f<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-636","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/expressbus.eg\/ar\/wp-json\/wp\/v2\/pages\/636","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/expressbus.eg\/ar\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/expressbus.eg\/ar\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/expressbus.eg\/ar\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/expressbus.eg\/ar\/wp-json\/wp\/v2\/comments?post=636"}],"version-history":[{"count":15,"href":"https:\/\/expressbus.eg\/ar\/wp-json\/wp\/v2\/pages\/636\/revisions"}],"predecessor-version":[{"id":1101,"href":"https:\/\/expressbus.eg\/ar\/wp-json\/wp\/v2\/pages\/636\/revisions\/1101"}],"wp:attachment":[{"href":"https:\/\/expressbus.eg\/ar\/wp-json\/wp\/v2\/media?parent=636"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}