首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >span标记在WordPress中发送通知电子邮件的onClick

span标记在WordPress中发送通知电子邮件的onClick
EN

Stack Overflow用户
提问于 2015-12-18 01:00:58
回答 2查看 1.3K关注 0票数 0

我有一个span标记,它是表单(但不是最终提交表单)的一部分,它使用户从第一个问题前进到第二个问题。单击此按钮,我想发送一个简单的电子邮件通知到硬编码的电子邮件说,一个新的条目已添加。我正在使用WordPress。

我的HTML如下(不可更改)

代码语言:javascript
复制
<span class="button next email-enter">
    <span class="txt">Get Started</span>
</span>

我将以下jquery函数与ajax结合使用(console.log成功):

代码语言:javascript
复制
$('.email-enter').on('click', function(){
    console.log('button is clicked');
    $.post("/wp-content/themes/wptheme/partials/notify.php"); 
});

然后我创建了一个包含以下内容的notify.php文件:

代码语言:javascript
复制
<?php wp_mail( 'myemail@myemail.com', 'The subject', 'The message' ); ?>

虽然click函数可以工作,但ajax/wp-mail不工作(我没有收到电子邮件)。如何编辑此代码以在单击此范围时发送电子邮件通知?

EN

回答 2

Stack Overflow用户

发布于 2015-12-18 01:49:10

它无法工作,因为您正在尝试使用Wordpress函数,而不是在Wordpress环境中。即使你把你的脚本放在你的主题文件夹中,因为你直接调用它,它也不会通过Wordpress核心。如果您查看您的错误日志,您应该会看到一个错误,说明wp_mail是未定义的。

一个简单的解决方案是只使用PHP的mail函数。虽然我建议用一种适当的方式来做这件事,使用the Wordpress AJAX functionality

首先,将以下内容添加到您的主题functions.php中,以便定义一个新的JS var,路径为admin-ajax.php,并将脚本的处理程序名称设置为第一个参数-假设此处的script.js是执行ajax请求的位置:

代码语言:javascript
复制
function my_load_scripts() {
  wp_enqueue_script('my_script', get_stylesheet_directory_uri() . '/js/script.js', array('jquery'), false, true );
  wp_localize_script('my_script', 'MyAjax', array('ajaxurl' => admin_url('admin-ajax.php')));
}
add_action('wp_enqueue_scripts', 'my_load_scripts');

然后向admin-ajax.php发出请求(然后在js/script.js中):

代码语言:javascript
复制
$('.email-enter').on('click', function() {
    $.post(ajaxurl, {action: 'send_mail'}); 
});

然后将以下内容添加到functions.php主题文件中:

代码语言:javascript
复制
function ajax_send_mail() {
  wp_mail('myemail@myemail.com', 'The subject', 'The message');
}
add_action('wp_ajax_send_mail', 'ajax_send_mail');
add_action('wp_ajax_nopriv_send_mail', 'ajax_send_mail');
票数 2
EN

Stack Overflow用户

发布于 2015-12-18 01:13:09

我假设您的smtp设置是完美的。

代码语言:javascript
复制
  $('.email-enter').on('click', function(){
        console.log('button is clicked');
        $.post("/wp-content/themes/wptheme/partials/notify.php"); 
    });

/wp-content/themes/wptheme/partials/notify.php尝试制作模板文件,并在$.post()中给出固定链接,或者在wp-content/notify.php中放置文件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34340228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档