php
  • wordpress
  • http-post
  • 2017-03-10 72 views 1 likes 
    1

    我正在开发一个Wordpress插件,并且在使用短代码内的操作获取$ _POST数据时遇到了问题。我解析的表单位于我已将我的简码添加到的页面上。Wordpress Plugin Shortcode中的动作钩子

    下面是我得到了什么:

    function wpd_post_parse() { 
    
        $string = 'wp hook: ' . var_dump($_POST) . "\r\n"; 
    
        //$string = 'wp hook: first name: ' . $_POST["first_name"] . "\r\n"; 
        //$string .= 'wp hook: last name: ' . $_POST["last_name"] . "\r\n"; 
        //$string .= 'wp hook: email: ' . $_POST["email"] . "\r\n"; 
    
        $fileName = dirname(__FILE__) . '/log.txt';  
    
        file_put_contents($fileName, $string, FILE_APPEND | LOCK_EX); 
        //file_put_contents($fileName, $string, FILE_APPEND); 
    
        /* 
        if (!empty($_POST)){ 
    
         $string = 'wp hook: ' . var_dump($_POST) . "\r\n"; 
    
         $fileName = dirname(__FILE__) . '/log.txt';  
    
         file_put_contents($fileName, $string, FILE_APPEND | LOCK_EX); 
         //file_put_contents($fileName, $string, FILE_APPEND); 
    
        }else{ 
    
         $string = 'wp hook: POST empty' . "\r\n"; 
    
         $fileName = dirname(__FILE__) . '/log.txt';  
    
         file_put_contents($fileName, $string, FILE_APPEND | LOCK_EX); 
        } 
        */ 
    
    } 
    
    function mgc_init(){ 
    
        $htmlStr = 'Hello World!' . "\r\n"; 
    
        $fileName = dirname(__FILE__) . '/log.txt'; 
    
        file_put_contents($fileName, $htmlStr, FILE_APPEND | LOCK_EX); 
        //file_put_contents($fileName, $htmlStr, FILE_APPEND); 
    
        //Add hook to capture $_POST data 
        add_action('parse_request', 'wpd_post_parse'); 
    
    } 
    
    add_shortcode('mgc','mgc_init'); //put this shortcode [mgc] on page in Wordpress 
    

    UPDATE:感谢您的帮助迄今。我试图在表单提交上获得$ _POST值(名字),但该值不在$ _POST [“first_name”]内。所有这些被打印到文件“WP钩:第一个名字:”下面的代码现在的样子:

    //Capture the $_POST data 
    function wpd_post_parse() { 
    
        //$string = 'wp hook: ' . var_dump($_POST) . "\r\n"; 
    
        $string = 'wp hook: first name: ' . $_POST["first_name"] . "\r\n"; 
        //$string .= 'wp hook: last name: ' . $_POST["last_name"] . "\r\n"; 
        //$string .= 'wp hook: email: ' . $_POST["email"] . "\r\n"; 
    
        $fileName = dirname(__FILE__) . '/log.txt';  
    
        file_put_contents($fileName, $string, FILE_APPEND | LOCK_EX); 
        //file_put_contents($fileName, $string, FILE_APPEND); 
    
        /* 
    if (!empty($_POST)){ 
    
        $string = 'wp hook: ' . var_dump($_POST) . "\r\n"; 
    
        $fileName = dirname(__FILE__) . '/log.txt';  
    
        file_put_contents($fileName, $string, FILE_APPEND | LOCK_EX); 
        //file_put_contents($fileName, $string, FILE_APPEND); 
    
    }else{ 
    
        $string = 'wp hook: POST empty' . "\r\n"; 
    
        $fileName = dirname(__FILE__) . '/log.txt';  
    
        file_put_contents($fileName, $string, FILE_APPEND | LOCK_EX); 
    } 
    */ 
    
    //exit; 
    } 
    
    function mgc_init(){ 
    
        $htmlStr = 'Hello World!' . "\r\n"; 
    
        $fileName = dirname(__FILE__) . '/log.txt'; 
    
        file_put_contents($fileName, $htmlStr, FILE_APPEND | LOCK_EX); 
        //file_put_contents($fileName, $htmlStr, FILE_APPEND); 
    
        do_action('wpd_post_parse'); 
    
    } 
    
    add_shortcode('mgc','mgc_init'); //put this shortcode [mgc] on thedinnerdaily.com/subscribe/ page in Wordpress 
    
    add_action('parse_request', 'wpd_post_parse'); 
    

    回答

    0

    这种方法没有工作,这造成了WordPress站点范围内的问题。我将我的代码从注册页面移至完成表单的重定向页面。从那里我能够捕获我正在寻找的表单数据。

    相关问题