El ayudante de acceso por compra

pom_lms_user_purchased_course( int $course_id )

Responde si el usuario actual tiene una compra válida para un curso.

El valor de retorno

Devuelve un valor falsy cuando no hay ninguna compra válida. Cuando sí la hay, el ayudante devuelve el identificador del producto que la concedió — de modo que un resultado truthy te dice no solo que lo compró, sino qué producto contó.

Trátalo como un booleano a menos que necesites el producto:

$product_id = pom_lms_user_purchased_course( $course_id );

if ( $product_id ) {
    // Optionally: link to the product they bought.
}

Así es como la tabla My courses nombra el producto en su columna de acceso.

Qué cuenta como compra válida

El ayudante examina los pedidos del cliente actual y pregunta si alguno de ellos contiene un producto asociado al curso.

Dos condiciones lo acotan:

  • El pedido debe estar en un estado pagado. Los pedidos pendientes, en espera, cancelados, reembolsados y fallidos no cuentan.
  • Si el producto es un producto de suscripción, el cliente debe además tener una suscripción activa para él. Una suscripción vencida no concede acceso, aunque el pedido original siga pagado.

Esa segunda condición es lo que hace que la venta basada en suscripciones se comporte como una membresía y no como una compra puntual.

Requisitos

WooCommerce debe estar activo. El manejo de suscripciones requiere además la extensión de suscripciones de WooCommerce; sin ella, los productos de suscripción se comportan como compras ordinarias.

Protégelo en consecuencia, y recuerda que un sitio puede perder WooCommerce — un curso de pago en un sitio con WooCommerce desactivado no puede conceder acceso a nadie.

Solo el usuario actual

No hay parámetro de ID de usuario, ni ninguna forma admitida de preguntar en nombre de otra persona. Compruébalo en el momento del renderizado.

Coste

Este es el ayudante costoso. Lee los pedidos del cliente e inspecciona sus líneas de artículo, así que no es algo para llamar dentro de un bucle sobre un catálogo grande.

Si estás listando cursos, guarda en caché el resultado por curso durante la duración de la petición.

Cuándo llamarlo directamente

Rara vez. Para decidir si mostrar contenido, llama a el ayudante de acceso al curso — aplica primero la puerta de inicio de sesión y la regla de permiso, algo que este ayudante no hace.

Las llamadas directas tienen sentido para:

  • Etiquetado, cuando quieres nombrar el producto que compró un estudiante.
  • Venta cruzada, cuando quieres ofrecer un producto relacionado a alguien que ya posee este.
  • Integraciones del lado del pedido, cuando estás reaccionando a una compra y quieres saber qué curso desbloqueó.

Lo que no hace

  • No tiene en cuenta las reglas de permiso. Un estudiante que tiene acceso mediante una regla y nunca compró nada devuelve falsy aquí.
  • No tiene en cuenta la puerta de inicio de sesión.
  • No te dice cuándo se produjo la compra. Las condiciones de fecha se expresan en las reglas de permiso, no aquí.
  • No concede nada. Solo informa.