无法在 Wp-Ajax/xmlhttpReq 问题上发布数据

问题描述

无法在 Wp-ajax 上发布数据

我有一个名为 Contactform 7 的 wp 插件。 我在我的网站上使用它让任何人通过电子邮件与我联系。 联系表 7 上有姓名、电子邮件和消息框以及标签。 当有人填写表格并点击提交按钮时, 如果他/她的邮件成功发送给我,我会用 PHP 生成一个随机参考 ID 并通过更改标签的文本将其提供给用户。 和我想要生成的参考也随电子邮件一起发送。我在我的电子邮件中得到了姓名、电子邮件、消息和参考。 (我使用 SMTP 到 Gmail, 但这不是问题。) 问题是,我无法在电子邮件获取生成的参考。 我尝试了 ajax、jquery、xmlhttpReq 等,我也在这里看到了一些问题的答案, 但我无法解决问题。 (我不擅长 Jquery、ajax 和 xmlhttpReq)

我知道我通常无法向 PHP 发送 js 变量值

因为PHP首先在前端生成然后js。 我推荐了很多行,我测试过,但没有结果-_- 在这里,我只是发送给定的电子邮件作为测试 perpous 的参考。

    //START custom code of billi


function my_theme_scripts() {
    wp_deregister_script('jquery');
    wp_enqueue_script('jquery','https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js',array(),null,true);
   // wp_enqueue_script(  get_template_directory_uri() . './js/jquery-3.6.0.min.js' );
}

add_action( 'wp_enqueue_scripts','my_theme_scripts' );


//custom ajax FUNCTION
add_action( 'wp_footer','my_ajax_function' );

// add_action( 'admin_footer','my_ajax_function' );
//   add_action('wp_ajax_my_ajax_action','my_ajax_function');
//   add_action('wp_ajax_noprev_my_ajax_action','my_ajax_function');

 function my_ajax_function(){
     $ajaxurl = admin_url('admin-ajax.PHP')
        ?>
        <script type="text/javascript">
            
            var wpcf7Elm = document.querySelector( '.wpcf7' );
            wpcf7Elm.addEventListener( 'wpcf7mailsent',function ( event ) {
                var xmail = document.getElementById('xmail').value;
                xlabelid=document.getElementById('xlabelid');
                xlabelid.innerText = 'Post Reference: '+xmail;
//for get and set the label(which show ref id) ..
                // $.ajax({
                //  type : "POST",//  url : '<?PHP echo $ajaxurl?>',//  data: ({
                //      action: 'my_action',//      'refx': xmail
                //  }),//  success:  function( response ) {
                        
                //  }


                // });
                
                
            jQuery(document).ready(function($){
                
                var data = {
                        'action': 'my_action','refx': xmail
                    };
                
                var ajaxurl = '<?PHP echo $ajaxurl?>';
                jQuery.post(ajaxurl,data,function(response) {
                    console.log(ajaxurl+"\n"+ response+ "\n"+ data);
                    
                });
                
            });


            },false);
        </script>

    <?PHP 
 }


// add_action('wp_ajax_my_action','my_action');
// add_action('wp_ajax_noprev_my_action','my_action');
//here I just trying to find out any ways.. But I cant
// function my_action(){
//  global $wpdb;
//  global $refx;
//  //$refx = intval($_POST['refx']);
//  $refx = $_POST['data'];
//  //echo $refx;
//  //$refx = 'billi';
//  //wp_die();
// }



/**
 * tag in "Mail" section so the user receives the special tag
 * [xid]
 */

// --------------------------------------------------------------------
add_filter('wpcf7_special_mail_tags','my_tag_xid',10,3);
add_action('wp_ajax_my_tag_xid_action','my_tag_xid');
function my_tag_xid($output,$name,$html)
{
    //my_action();
    //global $refx;
    //require_once('./uniqueIdGen.PHP');
    $name = preg_replace('/^wpcf7\./','_',$name); // for back-compat
    // include 'uniqueIdGen.PHP';
    if ('xid' == $name) {
        //$output = $refx;
        //return $output; //this output goes to email 
        return $output= $_POST['data'];
    }
    return $output;
}
// --------------------------------------------------------------------

//END Custom code of billi

I got this error(errors Image is here)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)