2015-06-01 88 views
1

我正在開發一個自定義註冊表單插件。我有第一個文件customapplicationform.php文件,其他文件在側面註冊和shortcode文件夾中。 所以,我的插件目錄結構是這樣的:調用未定義的函數add_action()

--->customapplicationform 
    |--js 
     |--ajax-registration.js 
    |--registration 
     |--registration.php 
     |--regsubmit.php 
     |--scripts.php 
    |--shortcode 
     |--display.php 
     |--shortcodes.php    

--customapplicatioform.php

它給錯誤:

請告訴我是什麼問題呢?如果還有什麼比建議我更好的方法。提前致謝。我的customapplicationform.php文件。

require_once(ABSPATH.'wp-admin/includes/plugin.php'); 


ob_start(); 

global $app_db_version; 
$app_db_version = '1.0'; 


function app_install() { 

global $wpdb; 
global $app_db_version; 

$table_name = $wpdb->prefix .'registeration'; 

$charset_collate = $wpdb->get_charset_collate(); 

$sql = "CREATE TABLE $table_name (
    regid mediumint(9) NOT NULL AUTO_INCREMENT, 
    time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, 
    fname varchar(50) NOT NULL, 
      lname varchar(50) NOT NULL, 
      email varchar(50) NOT NULL, 
      phno int(12) NOT NULL, 
    PRIMARY KEY(regid) 
) "; 

require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); 
dbDelta($sql); 

add_option('app_db_version', $app_db_version); 
} 
register_activation_hook(__FILE__, 'app_install'); 
include_once('/shortcode/shortcodes.php'); 

2)這是我的shortcodes.php文件。

function shortcode_function($atts) { 
    $plugin_dir_path = dirname(__FILE__); 
    include_once('display.php'); 
    $data = ob_get_clean(); 
    return $data; 
    } 
add_shortcode('custom-application', 'shortcode_function'); 

3)這是我的display.php文件。

include_once(''.dirname(dirname(__FILE__)).'/registration/registration.php'); 

4)這是我的registration.php文件。

<form action="<?php echo plugins_url();>/customapplicationform/registration/regsubmit.php" method="Post"> 

<label>First Name:</label> 
<input type="text" name="appfname" id="appfname" /> 

<label>Last Name :</label> 
<input type="text" name="applname" id="applname" /> 

<label>Email :</label> 
<input type="email" name="appemail" id="appemail" /> 

<label>Phone :</label> 
<input type="tel" name="appphone" id="appphone" /> 

<?php// wp_nonce_field('app_new_user','app_new_user_nonce', true, true); ?> 

<input type="Submit" value="Submit" id="btn-new-user"> 


</form> 

5)這是我regsubmit.php文件。

require_once('scripts.php'); 
    // Verify nonce 
if(! wp_verify_nonce($_POST['app_new_user_nonce'], 'app_new_user')) 
{ 
    die('Ooops, something went wrong, please try again later.'); 
} 
else { 

if(isset($_POST['appemail'])) { 
// Post values 
echo $fname = $_POST['appfname']; 
echo $lname = $_POST['applname']; 
echo $email = $_POST['appemail']; 
echo $phone  = $_POST['appphone']; 

$userdata = array(
    'fname' => $fname, 
    'lname' => $lname, 
    'email' => $email, 
    'phno' => $phone, 

); 

$user_id = wp_insert_user($userdata) ; 

// Return 
    if(!is_wp_error($user_id)) { 
     echo '1'; 
    } else { 
     echo $user_id->get_error_message(); 
    } 
    } 
} 

6)這是我的scripts.php文件。

function app_register_user_scripts() { 
    // Enqueue script 
     wp_register_script('app_reg_script', dirname(__FILE__). '/js/ajax-   registration.js', array('jquery'), null, false); 
    wp_enqueue_script('app_reg_script'); 

    wp_localize_script('app_reg_script', 'app_reg_vars',  array('app_ajax_url' => admin_url('admin-ajax.php'))); 
    } 
    add_action('wp_enqueue_scripts', 'app_register_user_scripts'); 
+0

add_action定義在哪裏? –

+0

@ScottHunter,它是一個核心的WordPress功能 – rnevius

+0

@ScottHunter我已經使用add_action函數將腳本排入scripts.php文件。正如Mevius所說,它是WordPress的核心功能。 –

回答

1

這是一個核心功能,如果您的代碼被激活通過WordPress和訪問低谷的WordPress可用。如果您嘗試在WordPress範圍外調用插件文件(例如直接從瀏覽器接近文件),則除非您需要在WordPress根目錄的文件頂部添加wp-load.php,否則add_action將不可用。

相關問題