在表单的操作之前进行处理

时间:2020-04-15 作者:Kamduras

我有一个表单,可以重定向到支付平台,并在$\\u POST中发送数据。

<form method="POST" action="https://www.paiementgateway.com/paiement/order1.pl" accept-charset="UTF8" id="knp-form" target="_top">
        <table border="0" cellpadding="2" cellspacing="0" width="20%">
        <meta charset="UTF-8">
        <tr>
            <td width="50%">Nom:</td>
            <td width="50%"><input type="text" name="NOM" size="24" value=""></td>
        </tr>
        <tr>
            <td width="50%">Prenom:</td>
            <td width="50%"><input type="text" name="PRENOM" size="24" value=""></td>
        </tr>
        <tr>
            <td width="50%">Adresse:</td>
            <td width="50%"><input type="text" name="ADRESSE" size="24" value=""></td>
        </tr>
        <tr>
            <td width="50%">Code Postal:</td>
            <td width="50%"><input type="text" name="CODEPOSTAL" size="24" value=""></td>
        </tr>
        <tr>
            <td width="50%">Ville:</td>
            <td width="50%"><input type="text" name="VILLE" size="24" value=""></td>
        </tr>
        <tr>
            <td width="50%">Pays:</td>
            <td width="50%"><select size="1" name="PAYS">
            <option value="CH" selected="selected">Suisse </option>
            <option value="FR">France</option>
        </select>
        </td>
        </tr>
        <tr>
            <td width="50%">Tel:</font></td>
            <td width="50%"><input type="text" name="TEL" size="24" value=""></td>
        </tr>
        <tr>
            <td width="50%">E-mail:</font></td>
            <td width="50%"><input type="text" name="EMAIL" size="24" value=""></td>
        </tr>
        <input type="hidden" name="ID" value="1234567890">
        <input type="hidden" name="ABONNEMENT" value="123ABC465DEF7890">
        <tr>
        <td width="100%" colspan="2">
        <p align="center"><input type="submit" value="Envoyer" name="B1"></p></td>
        </tr>
        </table>

我想创建一个类似于用户注册的操作,但不幸的是,该操作似乎不起作用。

用户被重定向到支付平台,而不在WP上创建用户。

function traitement_formulaire_inscription() {

    if (isset($_POST[\'B1\']))  {

        $user_login = sanitize_text_field( $_POST[\'EMAIL\'] );
        $user_email = sanitize_email( $_POST[\'EMAIL\'] );
        $user = register_new_user( $user_login, $user_email );

    }
}
add_action(\'template_redirect\', \'traitement_formulaire_inscription\', 5);

2 个回复
最合适的回答,由SO网友:Kamduras 整理而成

我找到了解决办法。

我删除了表单中的操作

<form method="POST" action="" accept-charset="UTF8" id="knp-form" target="_top">
现在,带有wp\\u的动作挂钩用307代码重定向。

function traitement_formulaire_inscription() {

    if (isset($_POST[\'B1\']))  {

        $user_login = sanitize_text_field( $_POST[\'EMAIL\'] );
        $user_email = sanitize_email( $_POST[\'EMAIL\'] );
        $user = register_new_user( $user_login, $user_email );

        wp_redirect( \'https://www.paiementgateway.com/paiement/order1.pl?\', 307 );
        exit;

    }
}
add_action(\'template_redirect\', \'traitement_formulaire_inscription\', 5);

SO网友:uPrompt

这是因为您正在使用post操作将用户发送到另一个网站。template\\u重定向从未运行,因为用户不再位于您的站点上。您需要将它们保留在站点上,注册新用户,然后将它们与post数据一起发送到网关。

相关推荐

301 Redirection After Comment

下面的代码将访问者重定向到您想要的任何页面。// Redirect to thank you post after comment add_action(\'comment_post_redirect\', \'redirect_to_thank_page\'); function redirect_to_thank_page() { return \'https://example.com/thank-you\'; } 但是,我使用WP Multisite