¿Deshabilitar la autenticación api de woocommerce?

2 minutos de lectura

avatar de usuario
usuario3423364

La API de woocommerce toma oauth1.0 para solicitudes HTTP y autenticación HTTP básica para solicitudes HTTPS. Mi consulta es sencilla. ¿Cómo eliminar simplemente esta autenticación? Investigué un poco y descubrí que hay una clase en el complemento de woocommerce con un constructor como

public function __construct() {

        // To disable authentication, hook into this filter at a later priority and return a valid WP_User
        add_filter( 'woocommerce_api_check_authentication', array( $this, 'authenticate' ), 0 );
    }

Mi trabajo es simplemente eliminar la parte de autenticación. Aquí está diciendo conectar este filtro en una prioridad posterior. ¿Cómo hacerlo y cómo devolver un WP_User válido?

avatar de usuario
Karthik

Cree su propio complemento y coloque el siguiente código:

function wc_authenticate_alter(){
    //return wp_get_current_user();
    if( 'GET' ==  WC()->api->server->method ){
        return new WP_User( 1 );
    } else {
        throw new Exception( __( 'You dont have permission', 'woocommerce' ), 401 );
    }
}

add_filter( 'woocommerce_api_check_authentication', 'wc_authenticate_alter', 1 );

Esto omitirá la autenticación de la API de Woocommerce. Úsalo bajo tu propio riesgo.

(Puedes agregarlo en el tema functions.php en lugar de su propio complemento. Pero no probado.)

  • El código add_filter reemplaza el add_filter en el _construct a la derecha

    – usuario3423364

    6 de enero de 2016 a las 15:47

  • Se ejecuta después de la add_filter en __construct debido a la prioridad 1 como tercer parámetro.

    – Karthik

    6 de enero de 2016 a las 15:56

  • ¿Este código también funciona si quiero eliminar la autenticación para un punto final de API personalizado específico creado en un complemento?

    – Amjad

    14 de febrero de 2018 a las 12:42

  • “Este es el camino” diría un mandaloriano. Ahora considere que hacer que todos puedan ver todos los detalles de los productos, pedidos, clientes, etc. No se recomienda hacerlo en un sitio en vivo; de lo contrario, en un sitio de desarrollo, podría hacerse para no realizar ningún proceso de autenticación. .

    – Maxime Culea

    27 de enero de 2021 a las 16:34

  • @Amjad solo funciona para WooCommerce, ya que el filtro es “woocommerce_api_check_authentication”.

    – Maxime Culea

    27 de enero de 2021 a las 16:35

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad