Я создаю приложение на WordPress, для которого требуется простая форма переднего плана, где любой может отправить информацию, которую необходимо сохранить в базе данных. Я пытаюсь справиться с этим через REST API. (Из-за характера приложения не может быть перенаправления страницы при отправке этой информации.)
У меня нет проблем с настройкой REST API (v2), чтобы я мог отправить сообщение. Он отлично работает, когда я вхожу в WordPress. Когда я пытаюсь заполнить форму, не авторизовавшись в WordPress, я получаю сообщение об ошибке.
Не удалось загрузить ресурс: сервер ответил со статусом 403 (Запрещено)
Как я могу настроить API для получения POST от кого-либо без аутентификации?
Вот мой javascript:
$( '#post-submission-form' ).on( 'submit', function(e) {
e.preventDefault();
var title = $( '#post-submission-title' ).val();
var excerpt = $( '#post-submission-excerpt' ).val();
var content = $( '#post-submission-content' ).val();
var status = 'draft';
var data = {
title: title,
excerpt: excerpt,
content: content
};
$.ajax({
method: "POST",
url: POST_SUBMITTER.root + 'wp/v2/posts',
data: data,
beforeSend: function ( xhr ) {
//xhr.setRequestHeader( 'X-WP-Nonce', POST_SUBMITTER.nonce );
},
success : function( response ) {
console.log( response );
alert( POST_SUBMITTER.success );
},
fail : function( response ) {
console.log( response );
alert( POST_SUBMITTER.failure );
}
});
});
Вот как я инициализирую свой javascript:
function holiday_scripts() {
// Onload JS
wp_enqueue_script( 'holiday-js', get_template_directory_uri() . '/js/holiday.js', array(), false, true );
//localize data for script
wp_localize_script( 'holiday-js', 'POST_SUBMITTER', array(
'root' => esc_url_raw( rest_url() ),
'nonce' => wp_create_nonce( 'wp_rest' ),
'success' => __( 'Thanks for your submission!', 'your-text-domain' ),
'failure' => __( 'Your submission could not be processed.', 'your-text-domain' ),
'current_user_id' => 9
)
);
}
add_action( 'wp_enqueue_scripts', 'holiday_scripts' );
Кто-нибудь знает, как это сделать?
Спасибо!