现在,您需要设置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\');