WP表单处理程序不是由POST触发的

时间:2017-10-24 06:16:55

标签: php wordpress apache varnish

我有一段无效的代码。它是POST提交的处理程序。下面是发送数据的代码。

$.ajax({
  type: 'POST',
  url: '/calculator.php',
  data: $('form').serialize(),
  success: function(data) {
    console.log(data);
  }
});

处理程序 - calculator.php看起来像:

<?php
$parse_url = explode('wp-content', $_SERVER['SCRIPT_FILENAME']);
require_once($parse_url[0], 'wp-load');
send_email();
echo 'success';

function sendEmail() {
  ..
  wp_mail($to, $subject, $message, $headers);
}
?>

从命令行调用calculator.php时,它可以正常工作。但是,从ajax或邮递员提交from不会做任何事情。我的服务器前面有一个varnish缓存,但这并不重要。应该吗?

1 个答案:

答案 0 :(得分:0)

将calculator.php文件放在wordpress安装的根目录中,并进行以下更改。并使用此路径作为您的ajax网址

<强> Calculator.php中

<?php
require_once('wp-load.php');
send_email();
echo 'success';

function sendEmail() {
  ..
  wp_mail($to, $subject, $message, $headers);
}
?>