Estoy desarrollando un complemento de WordPress que proporciona una API REST. Cuando un cliente solicita midominio.com/wp-json/gateway/v1/redirect?key=value&key2=value2… Quiero redirigir al usuario a una página personalizada en el mismo dominio que envía un formulario con el método POST inmediatamente y va a otro dominio.
La página que contiene el formulario y que se va a enviar es solo un .php
archivo en mi directorio de complementos que acepta algunos campos dinámicos. A continuación se muestra la página (archivo).
<html>
<body>
<script>
var form = document.createElement("form");
form.setAttribute("method", "POST");
form.setAttribute("action", "https://nextDomain.com");
form.setAttribute("target", "_self");
var params = {
Amount: '<?php echo $amount; ?>',
MID: '<?php echo $merchant; ?>',
ResNum: '<?php echo $resNum; ?>',
RedirectURL: '<?php echo $callBackUrl; ?>',
ResNum1: '<?php echo isset($resNum1) ? $resNum1 : ""; ?>',
ResNum2: '<?php echo isset($resNum2) ? $resNum2 : ""; ?>',
ResNum3: '<?php echo isset($resNum3) ? $resNum3 : ""; ?>',
ResNum4: '<?php echo isset($resNum4) ? $resNum4 : ""; ?>',
};
for (var key in params) {
var hiddenField = document.createElement("input");
hiddenField.setAttribute("name", key);
hiddenField.setAttribute("value", params[key]);
form.appendChild(hiddenField);
}
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
</script>
</body>
</html>
Y así es como se ve el complemento:
<?php
/**
* Plugin Name: Gateway Redirector
* Plugin URI: https://example.com/plugins/the-basics/
* Description: Redirect payment requests to specified gateways
* Version: 1.0.0
* Author: Ako Salman
* Author URI: myDomain.com/
* License: GPL2
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
* Text Domain: Domain
* Domain Path: www.myDomain.com
*/
add_action('rest_api_init', 'karabama_register_redirectors');
function karabama_register_redirectors()
{
register_rest_route('gateway/v1', '/redirect', karabama_get_gateway_redirect_params());
}
function karabama_get_gateway_redirect_params()
{
return [
'methods' => WP_REST_Server::ALLMETHODS,
'callback' => 'karabama_gateway_redirect_callback'
];
}
function karabama_gateway_redirect_callback($request)
{
// Here how can I redirect the user to .php file and submit the Form ?
}
¿Alguien puede ayudarme, por favor, cómo manejarlo en el karabama_gateway_redirect_callback
¿función?
.