Vacíe automáticamente el carrito de WooCommerce y elimine la sesión después de 30 minutos

1 minuto de lectura

Estoy luchando por encontrar una solución sobre cómo puedo automáticamente, después de 30 minutos, vaciar el carrito y eliminar la sesión.

add_filter('wc_session_expiring', 'filter_ExtendSessionExpiring' );
add_filter('wc_session_expiration' , 'filter_ExtendSessionExpired' );

function filter_ExtendSessionExpiring($seconds) {
    global $woocommerce;

    $woocommerce->session->set_customer_session_cookie(true);
        return 60 * 30;
        WC()->cart->empty_cart();
        WC()->session->destroy_session();
}

function filter_ExtendSessionExpired($seconds) {
    global $woocommerce;

    $woocommerce->session->set_customer_session_cookie(true);
        return 60 * 30;
        WC()->cart->empty_cart();
        WC()->session->destroy_session();
}

/**
 * Set session expiration.
 */
public function set_session_expiration() {
    $this->_session_expiring   = time() + intval( apply_filters( 'wc_session_expiring', 60 * 60 * 47 ) ); // 47 Hours.
    $this->_session_expiration = time() + intval( apply_filters( 'wc_session_expiration', 60 * 60 * 48 ) ); // 48 Hours.
}

Arriba está la función que establece la caducidad de la sesión para WC. Puede usar el filtro para cambiar el valor como se muestra a continuación.

    add_filter( 'wc_session_expiring', 'wc_custom_session_expiring' );
    add_filter( 'wc_session_expiration', 'wc_custom_session_expiring' );

    function wc_custom_session_expiring( $expiry ) {
        return 60 * 30;
    }

  • Usar el filtro no funcionó. No estoy seguro de por qué. El complemento funcionó según lo previsto.

    usuario13639445

    7 de junio de 2020 a las 5:40

  • He visto comentarios en otros lugares que indican que el cron de la sesión de Woo se ejecuta cada 12 horas, por lo que aparentemente establecer el vencimiento en un intervalo más corto no funcionará sin cambiar también el cron. Todavía no lo he probado, pero probablemente use el complemento por la misma razón.

    – helado

    30 de diciembre de 2020 a las 14:19

¿Ha sido útil esta solución?