2015-06-01 2 views
1

Я разрабатываю плагин для пользовательской формы регистрации. У меня есть файл с файлом customapplicationform.php, другие файлы в боковой регистрации и папке коротких кодов. Итак, моя структура Plugin Справочник как это:Звонок на неопределенную функцию add_action()

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

--customapplicatioform.php

Это даст ошибку:

Пожалуйста, скажите мне, что проблема с этим? и если есть лучший способ, чем предложить мне. Заранее спасибо.

1) Это мой файл 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 (например, вы напрямую подходите к файлу из браузера), то add_action недоступен, если вы не требуете wp-load.php в верхней части файла из корня WordPress.

Смежные вопросы