Wordpress 插件插入查询不起作用

Wordpress plugin insert query is not working

我正在通过运行良好的前端页面调用 wordpress 插件函数,我调用的函数是将数据插入数据库,但它不起作用
这是我 运行(不起作用)的查询:

提交时正在调用该函数,因为打印了回显值但没有插入数据

function savedata(){
echo "<pre>";print_r($_POST);exit;
global $wpdb;
$wpdb->insert('questoptions',
     array(
        'question_id' => $_POST['question_id'],
        'text' => $_POST['text']

),
    array(
        '%s',
        '%s'
    )
);

die();
return true;
}

这是从前端调用此函数的函数:

function abc(){
jQuery.ajax({
        type: 'POST',
        url: "<?php echo admin_url('admin-ajax.php'); ?>",
        data: { action: 'savedata', 'question_id': document.getElementById('question_id').value, 'text': document.getElementById('text').value },               
        success: function(data){
            alert('success');
            console.log(data);
        },
        error: function(errorThrown){
            console.log(errorThrown);
        }
    });
}

有人知道吗?
谢谢

请删除第二行

echo "<pre>";print_r($_POST);exit;'

所以它执行其余代码和return。

如果你应该尝试这个并且也没有得到解决方案,那么你必须检查你的数据库 table name if table name pretend by 'wp' 你应该尝试 wp_ questoptions as table 查询中的名称而不是问题选项。

想。说不定对你有帮助。

Wordpress ajax function infromation 添加此功能并检查您的 post 数据是否被调用?

wp_ajax_nopriv_(action) executes for users that are not logged in.

    add_action( 'wp_ajax_savedata', 'custom_savedata' );
    add_action( 'wp_ajax_nopriv_savedata', 'custom_savedata' );

    function custom_savedata() {
    global $wpdb;
    if(isset($_POST) && !empty($_POST['question_id'])):
        $data = ($wpdb->insert('table_name_add_here', array(
                    'question_id'        => $_POST['question_id'],
                    'text' => $_POST['text'],
                )
        ));
        if($data){
            echo 'success';
        }else{
            echo 'not success';
        }
    else:
        echo 'please check post data';
    endif;  

    exit;
}