feat(pay): free-login gate in access policy plus service/demo helpers
This commit is contained in:
@@ -97,7 +97,11 @@ class AKSRT_Content_Visibility {
|
||||
: (int) ceil($price);
|
||||
|
||||
$state['download_cost'] = max(0, $download_cost);
|
||||
$state['need_login'] = !empty($paid_settings['download_login']) || !empty($pay_meta['require_login']);
|
||||
// Zibll pay_free_logged_show: free download still requires login.
|
||||
$free_logged_show = !empty($paid_settings['free_logged_show']);
|
||||
$state['need_login'] = !empty($paid_settings['download_login'])
|
||||
|| !empty($pay_meta['require_login'])
|
||||
|| ($free_logged_show && $state['download_cost'] <= 0);
|
||||
$state['require_captcha'] = !empty($paid_settings['download_captcha']) || !empty($pay_meta['require_captcha']);
|
||||
$state['need_purchase'] = !$has_vip_access && $state['download_cost'] > 0;
|
||||
$state['has_paid_access'] = $has_vip_access || $has_paid_order || !$state['need_purchase'];
|
||||
@@ -154,10 +158,18 @@ class AKSRT_Content_Visibility {
|
||||
]);
|
||||
}
|
||||
|
||||
// Free download + pay_free_logged_show (belt-and-suspenders with state.need_login).
|
||||
$cost = (int) ($state['download_cost'] ?? 0);
|
||||
$paid_settings = class_exists('AKSRT_Settings')
|
||||
? AKSRT_Settings::get_paid_content_settings()
|
||||
: ['download_credit' => true];
|
||||
: ['download_credit' => true, 'free_logged_show' => false];
|
||||
|
||||
if ($cost <= 0 && !empty($paid_settings['free_logged_show']) && $uid <= 0) {
|
||||
return new WP_Error('aksrt_need_login', __('免费资源,请登录后下载。', 'aksrt'), [
|
||||
'status' => 401,
|
||||
'login_url' => wp_login_url(get_permalink($resource_post)),
|
||||
]);
|
||||
}
|
||||
|
||||
if (!empty($paid_settings['download_credit']) && $cost > 0) {
|
||||
$balance = class_exists('AKSRT_Credits') ? AKSRT_Credits::balance($uid) : 0;
|
||||
|
||||
Reference in New Issue
Block a user