现在,您需要设置nonce 隐藏字段或元素,以便您可以验证请求。看看《法典》中的例子。
设置帖子ID和Nonce时,需要将特定帖子的ID添加到“删除”按钮或与该条目关联的隐藏输入字段中。我有示例设置,因此您需要添加post_id 以及nonce 到元素id,格式如下#delete_postid_nonce. 您的元素ID需要这样结束:#delete_12_94f3a1e666.
您可以使用以下方式进行分配:$element_id = \'delete_\' . $products->post_id . \'_\' . wp_create_nonce(\'delete_\' . $products->post_id );
添加需要放置在函数中的操作。php或自定义插件。
您将注意到有两个add\\u操作调用。一个用于特权用户(即他们已登录),另一个用于非特权用户。如果不需要两者兼用,请删除其中一个。你可以在法典上读到更多这方面的信息。
Delete\\u Row()函数这需要放在函数中。php或自定义插件。
这是你抓到的id 我们在data ajax调用的对象。它被解析并放入POST 自type ajax调用的POST.
那你呢explode() ajax调用中发送的元素ID之外的ID(例如#delete\\u 12\\u 94f3a1e666),这将为您留下$id = array(\'delete\', 12, \'94f3a1e666\');. 因此post\\u id等于index[1].
那你呢echo 返回data 到success ajax调用的一部分。然后通过调用“die”终止php函数。
您需要修改此代码以使其100%工作。
JS:
jQuery(document).on(\'click\', \'.delete\', function () {
var id = this.id;
jQuery.ajax({
type: \'POST\',
url: ajaxurl,
data: {"action": "your_delete_action", "element_id": id},
success: function (data) {
//run stuff on success here. You can use `data` var in the
//return so you could post a message.
}
});
});
PHP:
function delete_row() {
$id = explode(\'_\', sanitize_text($_POST[\'element_id\']));
if (wp_verify_nonce($id[2], $id[0] . \'_\' . $id[1])) {
$table = \'yourtable\';
$wpdb->delete( $table, array( \'post_id\' => $id[1] ) );
echo \'Deleted post\';
die;
} else {
echo \'Nonce not verified\';
die;
}
}
add_action(\'wp_ajax_your_delete_action\', \'delete_row\');
add_action( \'wp_ajax_nopriv_your_delete_action\', \'delete_row\');