Tôi có dữ liệu trong wp_options
bảng hiện được lưu dưới dạng mảng đa chiều ( profile_element_order
):
a:12:{s:17:"img_base64_enable";s:1:"1";s:25:"moulding_combination_page";s:0:"";s:24:"moulding_collection_page";s:0:"";s:25:"idea_gallery_thumb_height";s:3:"200";s:24:"idea_gallery_thumb_width";s:3:"200";s:23:"collection_thumb_height";s:3:"200";s:22:"collection_thumb_width";s:3:"200";s:20:"profile_item_columns";s:1:"4";s:17:"idea_item_columns";s:1:"2";s:24:"collections_item_columns";s:1:"2";s:25:"combinations_item_columns";s:1:"4";s:21:"profile_element_order";a:5:{i:0;s:8:"Option 1";i:1;s:8:"Option 2";i:2;s:8:"Option 3";i:3;s:8:"Option 4";i:4;s:8:"Option 5";}}
Những gì tôi đang cố gắng thực hiện là cập nhật profile_element_order
tùy chọn (trong các tùy chọn đó). Đây là cách mọi thứ trông cho đến nay:
function psort_save_order() {
global $mouldings_options;
$list = $mouldings_options['profile_element_order'];
$new_order = $_POST['list_items'];
$new_list = array();
// update order
foreach($new_order as $v) {
if(isset($list[$v])) {
$new_list[$v] = $list[$v];
}
}
// save the new order
update_option('profile_element_order', $new_list);
die();
}
add_action('wp_ajax_psort_update_order', 'psort_save_order');
Dữ liệu được đăng chính xác vào bảng DB (vì tôi có thể thấy một số lần thử thất bại của mình dưới dạng các mục tùy chọn mới, như mouldings_settings->profile_element_order
) - Tôi chỉ gặp khó khăn khi tìm ra update_option()
cú pháp cho tùy chọn cụ thể đó. Tôi đã thử những thứ như (ghi nhớ `mouldings_sinstall là tên tùy chọn thực tế):
mouldings_settings['profile_element_order']
$mouldings_options['profile_element_order']
profile_element_order
nhưng không có xúc xắc tại thời điểm này. Bât cư thông tin được cung câp nao cung được la sự suât hiện tuyệt vơi! Cảm ơn!
Cập nhật Đây là những gì tôi có bây giờ - hành động ajax tiết kiệm tốt, nhưng khi tôi lưu các tùy chọn plugin, nó sẽ sao chép các tùy chọn trong cơ sở dữ liệu và đưa ra lỗi tương tự như trước:
a:17:{s:17:"img_base64_enable";s:1:"1";s:25:"moulding_combination_page";s:0:"";s:24:"moulding_collection_page";s:0:"";s:25:"idea_gallery_thumb_height";s:3:"200";s:24:"idea_gallery_thumb_width";s:3:"200";s:23:"collection_thumb_height";s:3:"200";s:22:"collection_thumb_width";s:3:"200";s:20:"profile_item_columns";s:1:"4";s:17:"idea_item_columns";s:1:"2";s:24:"collections_item_columns";s:1:"2";s:25:"combinations_item_columns";s:1:"4";s:21:"profile_element_order";a:5:{i:4;s:8:"Option 5";i:0;s:8:"Option 1";i:1;s:8:"Option 2";i:3;s:8:"Option 4";i:2;s:8:"Option 3";}i:0;s:8:"Option 5";i:1;s:8:"Option 1";i:2;s:8:"Option 2";i:3;s:8:"Option 4";i:4;s:8:"Option 3";}
Chức năng:
function psort_save_order() {
global $mouldings_options;
$list = $mouldings_options['profile_element_order'];
$new_order = $_POST['list_items'];
$new_list = array();
// update order
foreach($new_order as $v) {
if(isset($list[$v])) {
$new_list[$v] = $list[$v];
}
}
$mouldings_options['profile_element_order'] = $new_list;
$mouldings_options = array_merge($mouldings_options,$mouldings_options['profile_element_order']);
// save the new order
update_option('mouldings_settings', $mouldings_options);
die();
}
add_action('wp_ajax_psort_update_order', 'psort_save_order');