2017-03-20 9 views
0

私は新しい用語を挿入するためのWordPressでAJAXを使用して動作していないupdate_term_metaが、update_term_metaWordpressのは

add_action('wp_ajax_create_new_class', 'create_new_class'); 
function create_new_class() { 
if(! isset($_POST) || empty($_POST)) { 
    header('HTTP/1.1 400 Empty POST Values'); 
    echo 'Could Not Verify POST Values.'; 
    exit; 
} 
$user_id   = sanitize_text_field($_POST['user_id']); 
$classname   = sanitize_text_field($_POST['classname']); 
$education_type  = sanitize_text_field($_POST['education_type']); 
$education_name  = sanitize_text_field($_POST['education_name']); 
$section   = sanitize_text_field($_POST['section']); 

if(empty($classname)){ 
    $error .= "لطفا نام کلاس را وارد کنید."; 
} 
if(empty($education_type)) { 
    $error .= "لطفا نوع آموزشگاه را تعیین کنید."; 
} 
if(empty($education_name)) { 
    $error .= "لطفا نام آموزشگاه را وارد کنید."; 
} 
if(empty($section)) { 
    $error .= "لطفا مقطع تحصیلی را تعیین کنید."; 
} 

if (empty($error)) { 
    $cid = wp_insert_term($classname, 'class', array('slug' =>  $classname."-".$user_id)); 
    update_term_meta($cid['term_id'],'education_name', $education_name); 
    update_term_meta($cid['term_id'],'section', $section); 
    update_term_meta($cid['term_id'],'teacher', $user_id); 
    update_term_meta($cid['term_id'],'eduation_type', $education_type); 
} 
if (! is_wp_error($cid)) 
{ 
    $error .= "کلاس جدید با موفقیت اضافه شد."; 
} 
else 
{ 
    $error .= $cid->get_error_message(); 
} 
$resp = array('error' => $error); 
echo json_encode($resp); 
wp_die(); 
} 

$ CIDを動作していない[ 'term_id']用語のIDを返します。
すべての用語は、以下のterm_meta [キー]

<input type="text" name="term_meta[education_name]" id="term_meta[education_name]" value=""> 


ある問題がどこにあるか分かりません。あなたが私に教えてくれるより良い解決策があれば教えてください。ありがとう

答えて

0

コードを見て、$ _POSTデータを見てみましょう。値は配列term_meta []に格納されますが、キーをPOST値として取得しようとしています。

$education_name  = sanitize_text_field($_POST['education_name']); 
$section   = sanitize_text_field($_POST['section']); 

その後、あなたのキー値ごとにをループ、値$ _POST [ 'term_meta']をつかんでみてください。またはそれらの直下を参照してください。

$term_meta = $_POST['term_meta']; 
$education_name = sanitize_text_field($term_meta['education_name']);