Restore unified paid download model
This commit is contained in:
1 parent
ca0a550af8
commit
b98faa965a
9 files changed
+246
-154
No files matched your search
@@ -117,6 +117,60 @@ if (!function_exists('aksrt_default_pay_meta')) {
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('aksrt_is_downloadable_content')) {
|
||||
function aksrt_is_downloadable_content($post = null): bool {
|
||||
$p = get_post($post);
|
||||
if (!($p instanceof WP_Post)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$meta = aksrt_get_pay_meta($p);
|
||||
if (($meta['pay_type'] ?? AKSRT_PAY_TYPE_NO) !== AKSRT_PAY_TYPE_DOWNLOAD) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return !empty($meta['downloads']) && is_array($meta['downloads']);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('aksrt_get_download_box_meta')) {
|
||||
function aksrt_get_download_box_meta($post = null): array {
|
||||
$p = get_post($post);
|
||||
if (!($p instanceof WP_Post)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
if (function_exists('aksrt_get_resource_meta') && function_exists('aksrt_is_resource_post') && aksrt_is_resource_post($p)) {
|
||||
$meta = aksrt_get_resource_meta($p);
|
||||
$meta['subject_label'] = __('资源', 'aksrt');
|
||||
return $meta;
|
||||
}
|
||||
|
||||
$pay_meta = aksrt_get_pay_meta($p);
|
||||
$download_count = (int) get_post_meta($p->ID, AKSRT_Domain_Model::RESOURCE_DOWNLOAD_COUNT_KEY, true);
|
||||
$view_count = (int) get_post_meta($p->ID, AKSRT_Domain_Model::POST_VIEW_COUNT_KEY, true);
|
||||
|
||||
return [
|
||||
'version' => (string) ($pay_meta['version'] ?? ''),
|
||||
'size' => (string) ($pay_meta['size'] ?? ''),
|
||||
'price' => (float) ($pay_meta['price'] ?? 0),
|
||||
'original_price' => (float) ($pay_meta['original_price'] ?? 0),
|
||||
'vip1_price' => (float) ($pay_meta['vip1_price'] ?? 0),
|
||||
'vip2_price' => (float) ($pay_meta['vip2_price'] ?? 0),
|
||||
'pay_type' => (string) ($pay_meta['pay_type'] ?? AKSRT_PAY_TYPE_NO),
|
||||
'license' => (string) ($pay_meta['license'] ?? ''),
|
||||
'compat' => (string) ($pay_meta['compat'] ?? ''),
|
||||
'demo_url' => (string) ($pay_meta['demo_url'] ?? ''),
|
||||
'downloads' => array_values(is_array($pay_meta['downloads'] ?? null) ? $pay_meta['downloads'] : []),
|
||||
'download_count' => max(0, $download_count),
|
||||
'view_count' => max(0, $view_count),
|
||||
'require_login' => !empty($pay_meta['require_login']),
|
||||
'require_captcha' => !empty($pay_meta['require_captcha']),
|
||||
'subject_label' => __('内容', 'aksrt'),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// 状态判断
|
||||
// ============================================================
|
||||
|
||||
Reference in new issue
Block a user