Wordpress文件句柄-fopen,fwrite不适用于$.ajax或$.post Jquery


Wordpress File handle - fopen, fwrite not working with $.ajax or $.post Jquery

我正在为站点中完成的所有操作制作一些日志,这些日志可以存储在.txt文件中。

我的php代码在进行正常加载时运行良好,但当我使用ajax时,我似乎没有阅读php上的fopen、fpost方法。。

请检查我的代码。

这是我的函数和ajax处理程序

function action_log( $msg ) {
    $current_user = wp_get_current_user();
    $path = "wp-content/themes/creation/templates/inc/log.txt";
    $myfile = (file_exists($path)) ? fopen($path, "a+") : fopen($path, "w+");
    $txt = $msg.$current_user->display_name."'n";
    if ( $myfile ) {
        fwrite( $myfile, $txt );
        fclose( $myfile );
        chmod($path, 0777);
        $result = $txt;
        return $result;
    } else {
        $result = $myfile;
        return $txt;
    }
}
add_action('wp_ajax_action-log-ajax', 'action_log_ajax');
add_action('wp_ajax_nopriv_action-log-ajax', 'action_log_ajax');
function action_log_ajax(){
    $post = $_REQUEST;
    $msg = $post['msg'];
    $write = action_log( $msg );
    exit( wp_send_json_success( $write ) );
}

我的jquery插件函数

  $.send_log_changes = function( $msg ) {
    var msgs = $msg;
    var action = 'action-log-ajax';
    console.log(msgs);
    $.post({
      url: plugins_ajax.ajaxUrl,
      method: 'POST',
      data: {
        action: action,
        msg: msgs
      },
      dataType: 'json',
      success: function( respones ) {
        console.log(respones);
      }
    });
 }

我尝试使用.ajax、.get、.post,但仍然出现相同的错误。它总是在CCD_ 1中返回并且不能在文件中写入/打开。

文件打开操作似乎返回false。您是否尝试在$path变量中输入完整路径,即/var/www/html/demo/wp-content/themes/createment/templates/inc/log.txt"等。