Ajax на странице настроек (update_option не определено)

Я делаю запрос в php-файл моего плагина через ajax, и он должен сохранить некоторые данные с помощью update_option (), но php выдает ошибку:

Call to undefined function update_option()

Я предполагаю, что когда я вызываю свой php-файл с помощью ajax WP, он не загружает его функции ... или что-то еще?

Приветствия

6 голосов | спросил Nikolay Dyankov 20 PMpFri, 20 Apr 2012 21:55:47 +040055Friday 2012, 21:55:47

1 ответ


23

Не отправляйте AJAX в свой PHP-файл напрямую. Вместо этого используйте встроенные функции AJAX WordPress 1) . Вы можете зарегистрировать обратный вызов AJAX из своего плагина, и WordPress отправит вам запрос на ваш файл плагина.

Например, этот код зарегистрирует обратный вызов под названием «wpa_49691»:

add_action( 'wp_ajax_wpa_49691', 'wpa_49691_callback' );
add_action( 'wp_ajax_nopriv_wpa_49691', 'wpa_49691_callback' );
function wpa_49691_callback() {
    // Do whatever you need with update_option() here.
    // You have full access to the $_POST object.
}

Затем вы публикуете все данные, которые вам нужны, просто укажите ---- +: = 1 =: + ---- в объекте:

action

Этот сценарий отправит ваши данные на сервер. Внутри обратного вызова сервера вы увидите <script type="text/javascript"> jQuery(document).ready(function($) { var data = { action: 'wpa_49691', my_var: 'my_data' }; jQuery.post( ajaxurl, data, function(response) { // handle response from the AJAX request. }); }); </script> .

Для дальнейшего чтения, проверьте:

1) Используйте $_POST['my_var'] = 'my_data' »wp_register_script( $handle ); »wp_enqueue_script( $handle ) - последний, чтобы переместить материал php в js-var, который может быть доступен в вашем скрипте AJAX.

ответил EAMann 20 PMpFri, 20 Apr 2012 22:27:52 +040027Friday 2012, 22:27:52

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132