Действие Wordpress Form не работает с AMP - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь использовать AMP с действием формы в WordPress.Я использую action-xhr с методом POST.

При отправке формы выдается ошибка

  • Ответ должен содержать заголовок AMP-Access-Control-Allow-Source-Origin
  • Ошибка при отправке формы: ошибка: Ответ должен содержать заголовок AMP-Access-Control-Allow-Source-Origin

Даже попытался добавить заголовок, как показано ниже

header("AMP-Access-Control-Allow-Source-Origin: https://www.demo.com");

проблема остается.Любые предложения?

Я использую WordPress версии 5.0.3

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

Если используется официальный плагин AMP для WordPress, эти заголовки будут отправляться автоматически с помощью метода AMP_HTTP::send_cors_headers().

Для получения дополнительной информации о поведении плагинасм. Порядок подачи заявок playbook.

0 голосов
/ 09 февраля 2019

Вы можете установить заголовки с помощью файла .htaccess.

Header set Access-Control-Allow-Origin 'https://cdn.ampproject.org​'
Header set AMP-Access-Control-Allow-Source-Origin 'https://your-domain.com'

Или есть простой пример для вас;

function amp_comment_submit(){
  $comment = wp_handle_comment_submission( wp_unslash( $_POST ) );
  if ( is_wp_error( $comment ) ) {
    $data = intval( $comment->get_error_data() );
    if ( ! empty( $data ) ) {
      status_header(500);
      wp_send_json(array('msg' => $comment->get_error_message(),
                        'response' => $data, 
                        'back_link' => true ));
    }
  }
  else {
    @header('AMP-Redirect-To: '. get_permalink($_POST['comment_post_ID']));
    @header('AMP-Access-Control-Allow-Source-Origin: ' . $_REQUEST['__amp_source_origin'] );
    wp_send_json(array('success' => true));
  }
}
add_action('wp_ajax_amp_comment_submit', 'amp_comment_submit');
add_action('wp_ajax_nopriv_amp_comment_submit', 'amp_comment_submit');

Для более: https://medium.com/@surajair/creating-comment-form-on-amp-pages-in-wordpress-9dd675ba383b

...