Personalización de los parámetros de pago de Stripe

Los parámetros de pago de Stripe, como la moneda o el monto a pagar, se determinan mediante la etiqueta de formulario [stripe] colocada en la plantilla de formulario. Es posible que desees personalizar los parámetros cambiándolos dinámicamente con base en la selección del usuario o de algún tipo de cálculo.

Puedes hacerlo utilizando el gancho de filtro wpcf7_stripe_payment_intent_parameters como se muestra en el siguiente fragmento de código de ejemplo:

add_filter(
	'wpcf7_stripe_payment_intent_parameters',

	function ( $params ) {

		// Obtenemos el objeto WPCF7_Submission
		$submission = WPCF7_Submission::get_instance();

		// Obtenemos la moneda del valor del campo 'tu-moneda'
		$currency = (array) $submission->get_posted_data( 'tu-moneda' );
		$currency = (string) array_shift( $currency );
		$params['currency'] = strtolower( $currency );

		// Calculamos el monto
		$amount = 1000 * SOME_CONSTANT;
		$params['amount'] = $amount;

		// Obtenemos el correo electrónico del cliente desde el valor del campo 'email-123'
		$receipt_email = $submission->get_posted_data( 'email-123' );

		if ( is_email( $receipt_email ) ) {
			$params['receipt_email'] = $receipt_email;
		}

		// Consulta https://stripe.com/docs/api/payment_intents/create
		// para ver la lista completa de parámetros disponibles

		return $params;
	},

	10, 1
);