PHP致命错误 - 无法取消设置字符串偏移

时间:2017-08-07 12:11:53

标签: php wordpress google-app-engine

我正在尝试修补在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代码有问题吗?

1 个答案:

答案 0 :(得分:3)

这是因为$args['headers']是一个字符串,而不是数组,因此行unset($args['headers']['X-WPCF7-Content-Type']);会引发此错误。如果要更改它,请使用字符串操作函数,如str_replace