WC_Download_Handler::check_download_login_required
Check if a download requires the user to login first.
Method of the class: WC_Download_Handler{}
No Hooks.
Returns
null. Nothing (null).
Usage
$result = WC_Download_Handler::check_download_login_required( $download );
- $download(WC_Customer_Download) (required)
- Download instance.
WC_Download_Handler::check_download_login_required() WC Download Handler::check download login required code WC 10.5.0
private static function check_download_login_required( $download ) {
if ( $download->get_user_id() && 'yes' === get_option( 'woocommerce_downloads_require_login' ) ) {
if ( ! is_user_logged_in() ) {
if ( wc_get_page_id( 'myaccount' ) ) {
wp_safe_redirect( add_query_arg( 'wc_error', rawurlencode( __( 'You must be logged in to download files.', 'woocommerce' ) ), wc_get_page_permalink( 'myaccount' ) ) );
exit;
} else {
self::download_error( __( 'You must be logged in to download files.', 'woocommerce' ) . ' <a href="' . esc_url( wp_login_url( wc_get_page_permalink( 'myaccount' ) ) ) . '" class="wc-forward">' . __( 'Login', 'woocommerce' ) . '</a>', __( 'Log in to Download Files', 'woocommerce' ), 403 );
}
} elseif ( ! current_user_can( 'download_file', $download ) ) {
self::download_error( __( 'This is not your download link.', 'woocommerce' ), '', 403 );
}
}
}