Как создать окно оповещения, которое должно отображаться (вы уже зарегистрированы) в форме подписки по электронной почте - PullRequest
0 голосов
/ 07 декабря 2018

в форме подписки на электронную почту для вновь введенной электронной почты, мы должны создать окно оповещения, которое должно отображаться (с подпиской), если электронная почта уже зарегистрирована, тогда должно отображаться окно оповещения (уже подписано).Здесь я использую javascript, jquery, ajax, сервер localhost.Я также использую WordPress, плагин (acymailing).

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
    jQuery(document).on("submit", "#form", function (e) {
        e.preventDefault();
        var t = jQuery(this);
        var postdata = t.serialize();
        postdata += "&" + jQuery.param({action: "my_action"});
        jQuery.ajax({
            url: ajaxurl,
            type: "post",
            data: postdata,
            success: function (response) {
                console.log(response);
            }
        });
    });
</script>


add_action('wp_ajax_my_action', 'my_action');
add_action('wp_ajax_nopriv_my_action', "my_action");
add_action('admin_post_my_action', 'my_action');
add_action('admin_post_nopriv_my_action', "my_action");

function my_action() {
    global $wpdb;
 extract($_POST);
    if (isset($email)) {
        $userClass = acym_get('class.user');
        $user = $userClass->getOneByEmail($email);
        $isalreadysubscribed = FALSE;
        $userarr = array();
        $listarr = array();
        $subscribedToLists= FALSE;
        if (is_object($user)) {
            $userarr[] = $user->id;
            $usersubscriptionlist = $userClass->getUsersSubscriptionsByIds($userarr);
            if (is_array($usersubscriptionlist)) {
                foreach ($usersubscriptionlist as $list) {
                    $listarr[] = $list->id;
                }
                $userClass->unsubscribe($userarr, $listarr);
                $isalreadysubscribed = TRUE;
               
            }
        }
        if (count($listarr) == 0) {
            if (!is_object($user)) {
                $user = new stdClass();
                $user->{"id"} = acym_getCID('id');
                $user->{"email"} = $email;
                $userarr[] = $userClass->save($user);
            }
            $listarr[] = $listsub;
            $subscribedToLists = $userClass->subscribe($userarr, $listarr);
        }
        echo json_encode($subscribedToLists);
    }
    
    wp_die();
}
  <form method="post" action="<?php echo esc_url(admin_url('admin-post.php')); ?>">
                                <input type="hidden" name="action" value="my_action" />
                                <input type="hidden" name="listsub" value="1" />
                                <input type="email" name="email" />
                                <input type="submit" />
                            </form>
  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...