【发布时间】:2017-08-13 08:24:46
【问题描述】:
我(第一次)开发了一个 WordPress 插件,它是一个简单的注册表单。它将数据发送到 API。在设置页面,您可以选择提交成功后应将用户重定向到哪个页面。但是重定向不起作用。
我得到这样的页面链接:
$options = get_option('rfw_options');
$successPage = (isset($options['rfw_field_success_page']) ? esc_html($options['rfw_field_success_page']) : 'Select Page');
// some code for API call
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($status == 200) { // that means if successful
$successLink = get_permalink(get_page_by_title($successPage));
header("Location: '. $successLink .'");
}
即使我将标题位置设置为跟随它不起作用:
header("Location: https://www.google.no/");
在这里你可以看到我是如何设置我的表单的:
function rfw_html_form_code() {
echo '<form action="' . esc_url($_SERVER['REQUEST_URI']) . '" method="post">';
echo '<div class="flex-container"><p>';
_e('Fornavn (obligatorisk)', 'recman-form-widget');
echo '<br><input type="text" name="rfw-fname" pattern="[A-Za-z\wåäöæéøâèêóòôÅÄÖÆÉØÂÈÊÓÒÔ]+" value="' . $_POST['rfw-fname'] . '" required />';
echo '</p>';
echo '<p>';
_e('Etternavn (obligatorisk)', 'recman-form-widget');
echo ' <br /><input type="text" name="rfw-lname" pattern="[A-Za-z\wåäöæéøâèêóòôÅÄÖÆÉØÂÈÊÓÒÔ]+" value="' . $_POST['rfw-lname'] . '" required />';
echo '</p></div>';
}
希望有人能帮我解决这个问题。
【问题讨论】:
-
header("Location: '. $successLink .'");在语法上是错误的,header("Location: $successLink");可以解决问题(因为您使用的是双引号)。但是您可能在发送标头之前有输出,请在文件顶部、<?php之后启用错误报告error_reporting(E_ALL); ini_set("display_errors", 1); -
有一段时间(不太确定现在是否适用)您必须退出;在标题(位置:“www.blah.com”)的末尾,否则我认为它会继续 - 也许只是在一个旧的野生动物园中。无论哪种方式 - 我仍然这样做。
标签: php wordpress api redirect curl