【发布时间】:2017-08-07 12:11:52
【问题描述】:
我正在尝试修复在 Google App Engine 上运行的 WP Plugin Contact Form 7 的问题。
补丁代码是:
<?php
/*
Plugin Name: Fix Contact Form 7
*/
add_filter('wp_mail', 'fix_wp_mail_filter', 11);
function fix_wp_mail_filter($args) {
unset($args['headers']['X-WPCF7-Content-Type']);
$new_wp_mail = array(
'to' => $args['to'],
'subject' => $args['subject'],
'message' => $args['message'],
'headers' => $args['headers'],
'attachments' => $args['attachments'],
);
return $new_wp_mail;
}
现在,当我测试联系表单时,我在浏览器中收到 500 错误并检查 App Engine 请求日志,显示此错误:
PHP 致命错误:
无法在第 8 行的 /base/data/home/apps/s~aura-www/20170807t210800.403218500896707567/wordpress/wp-content/plugins/cf7_fix_plugin.php 中取消设置字符串偏移量
PHP代码有问题吗?
【问题讨论】:
-
在尝试
unset之前,var_dump($args)会给你什么? -
我不确定如何在 App Engine 上使用我的 wordpress 设置来测试它。我可以在这个 php 插件文件中添加一行来输出这个吗?
-
我不确定您的其余代码以及调用此函数的方式和时间,但也许添加
var_dump($args); die();并向使用此插件的页面发出请求会给您一些东西。或者如果有更好的方法来做到这一点,比如将 $args 转储到日志文件,或者使用您可能拥有的其他调试功能。但如果没有其他选项,请尝试 var_dump 并死掉,让我们知道输出。我猜$args['headers']可能是一个简单的字符串而不是一个数组。 -
我应该用这个函数替换未设置的函数,还是放在下面?
-
把它放在它之前,在
function fix_wp_...和unset(...)之间的新行中
标签: php wordpress google-app-engine