Woocommerce: configure otra dirección de correo electrónico de PayPal si el cliente tiene un rol determinado

3 minutos de lectura

Estoy tratando de agregar otra dirección de correo electrónico de PayPal en Woocommerce si el cliente tiene un rol determinado, en este caso, un cliente mayorista. Woocommerce de forma predeterminada solo le permite configurar una cuenta de PayPal, pero he podido encontrar la woocommerce_paypal_args función para cambiar los argumentos que se envían a PayPal. Puedo ver que el campo comercial es responsable de mantener la dirección de correo electrónico a la que se envían los pagos.

Tengo el código a continuación que debería interceptar esto y cambiarlo si el usuario es un cliente mayorista.

La pregunta es… ¿Qué tan seguro es esto? ¿Hay un mejor método de hacer lo que quiero?

add_filter( 'woocommerce_paypal_args', 'woocommerce_paypal_args', 10, 2 );
function woocommerce_paypal_args( $paypal_args, $order ) {

    //Get the customer ID
    $user_id = $order->get_user_id();

    // Get the user data
    $user_data = get_userdata( $customer_id );
    // Adding an additional recipient for a custom user role

    if ( in_array( 'wholesale_customer', $user_data->roles )  )
         $paypal_args['business'] = '[email protected]';

    return $paypal_args;
}

  • Solo está cambiando el correo electrónico de PayPal, por lo que no debería haber problemas de seguridad adicionales. Si realiza una búsqueda de woocommerce_paypal_args, verá que muchas personas hacen cosas similares, incluso cambian de cuenta en función de los productos comprados, por lo que me sentiría seguro de que es la mejor manera de proceder. Cualquier inquietud y puede usar el modo sandbox de paypal para verificar.

    – Buster

    14 de diciembre de 2017 a las 19:02

  • Hola a ambos, gracias por contactarme. Probé esto en modo sandbox y el pago entró con éxito en la cuenta al pagar como cliente mayorista. Sin embargo, en la sección de pedidos de Woocommerce, el estado del pedido es ‘en espera’ y tiene un mensaje de error ‘Error de validación: respuesta de IPN de PayPal desde una dirección de correo electrónico diferente’. ¿Esto es porque tengo sandbox habilitado?

    – Shaun

    18 de diciembre de 2017 a las 10:22

  • Además, mi preocupación con la seguridad era que si alguien obtuviera acceso al código functions.php de los sitios web, sería muy fácil para ellos cambiar la dirección de correo electrónico de la empresa, ¿no es así?

    – Shaun

    18 de diciembre de 2017 a las 10:24

  • Creo que la única manera de que alguien obtenga acceso a sus funciones.php es tener sus credenciales de ftp o hosting. Si alguien puede acceder a su functions.php, también puede acceder a su wp-config.php, que tiene inicio de sesión para sus bases de datos de wp y todo tipo de información privada estaría disponible.

    – Buster

    18 de diciembre de 2017 a las 19:55

  • @Buster ¡Muy buen punto!

    – Shaun

    19 de diciembre de 2017 a las 9:28


Puedo decirle por experiencia en la construcción y modificación de puertas de enlace de WooCommerce que esta es una forma perfectamente segura y razonable de lograr esto utilizando su complemento actual. Dicho esto… use algunos corchetes cuando escriba una declaración if… esto no es Python.

¿Ha sido útil esta solución?