删除短代码并更新其内容(AJAX)

时间:2018-10-01 作者:Alt C

这是我的密码

function ajax_layoutcontrol(){

    if( !check_ajax_referer( \'special-string\',\'security\')){
        return wp_send_json_error( \'Invalid nounce\');
    }
    if (! current_user_can(\'manage_options\')){
        return wp_send_json_error(\'You are not allowed to do this\');
    }

    $orderwppl= $_POST[\'order\']; // This is an array[\'phone\', \'email\']


        remove_shortcode( \'sideblock\' );
        add_shortcode( \'sideblock\', \'new_order\' );

     function new_order(){

        foreach ($orderwppl as $item) {
            get_template_part( \'content\', $item ); 
        }

     }

    wp_send_json_success( \'Post Saved\');
    die();


}
add_action( \'wp_ajax_save_listing_order\', \'ajax_layoutcontrol\');
我正在尝试更改短代码

function old_order(){
        get_template_part( \'content\', \'email\' ); 
        get_template_part( \'content\', \'phone\' );
}

add_shortcode(\'sideblock\', \'old_order\');
但这不起作用,因为ajax抛出500个错误请帮助

1 个回复
SO网友:rudtek

您的$\\u Post是否按预期返回数组?

据我所知,您的add\\u操作也没有调用正确的函数。。。

要么改变wpprolister_ajax_layoutcontrol 在该行中ajax_layoutcontrol 或者将函数重命名为wpprolister_ajax_layoutcontrol

另一种选择可能是在页面上放置一个selectbox元,并使用它调用正确的格式。那么就不需要使用POST数据了。

ie

function new_order() {
  $template_check = get_post_meta( $post->ID, \'template_check\', true );
  get_template_part( \'content\', $template_check ); 
}

结束