post_type !== 'post') { return; } wp_enqueue_media(); $css = AKSRT_DIR . '/assets/css/admin/pay-meta-box.css'; $js = AKSRT_DIR . '/assets/js/admin-pay-meta-box.js'; if (is_file($css)) { wp_enqueue_style('aksrt-pay-meta-box', AKSRT_URI . '/assets/css/admin/pay-meta-box.css', [], (string) filemtime($css)); } if (is_file($js)) { wp_enqueue_script('aksrt-pay-meta-box', AKSRT_URI . '/assets/js/admin-pay-meta-box.js', [], (string) filemtime($js), true); } } public function render(\WP_Post $post): void { wp_nonce_field('aksrt_pay_meta_save', 'aksrt_pay_meta_nonce'); $meta = function_exists('aksrt_get_pay_meta') ? aksrt_get_pay_meta($post) : DomainModel::default_pay_meta(); $gallery_ids = []; foreach ((array) ($meta['gallery'] ?? []) as $url) { $id = attachment_url_to_postid((string) $url); if ($id > 0) { $gallery_ids[] = $id; } } ?>
$options */ private function radio(string $id, string $title, string $value, array $options, string $description = ''): void { ?> > $rows */ private function group(string $id, string $title, array $rows, string $renderer, string $button, string $description = ''): void { ?> post_type !== 'post' || (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) || wp_is_post_revision($post_id) || !current_user_can('edit_post', $post_id)) { return; } if (empty($_POST['aksrt_pay_meta_nonce']) || !wp_verify_nonce(sanitize_text_field(wp_unslash((string) $_POST['aksrt_pay_meta_nonce'])), 'aksrt_pay_meta_save')) { return; } $raw = isset($_POST['aksrt_pay']) && is_array($_POST['aksrt_pay']) ? wp_unslash($_POST['aksrt_pay']) : []; $gallery = []; $ids = array_values(array_filter(array_map('absint', preg_split('/[\s,]+/', (string) ($raw['gallery_ids'] ?? '')) ?: []))); foreach (array_slice($ids, 0, 100) as $attachment_id) { $url = wp_get_attachment_image_url($attachment_id, 'full'); if ($url) { $gallery[] = $url; } } $meta = DomainModel::sanitize_pay_meta([ 'pay_type' => $raw['pay_type'] ?? 'no', 'pay_limit' => $raw['pay_limit'] ?? 0, 'pay_modo' => $raw['pay_modo'] ?? '0', 'order_expired_s' => !empty($raw['order_expired_s']), 'order_expired_time' => $raw['order_expired_time'] ?? 0, 'order_expired_unit' => $raw['order_expired_unit'] ?? 'day', 'price' => (string) ($raw['price'] ?? '0'), 'points_price' => $raw['points_price'] ?? 0, 'original_price' => (string) ($raw['original_price'] ?? '0'), 'promotion_tag' => (string) ($raw['promotion_tag'] ?? ''), 'vip1_price' => (string) ($raw['vip1_price'] ?? '0'), 'vip2_price' => (string) ($raw['vip2_price'] ?? '0'), 'vip1_points' => $raw['vip1_points'] ?? 0, 'vip2_points' => $raw['vip2_points'] ?? 0, 'pay_count' => $raw['pay_count'] ?? 0, 'gallery' => $gallery, 'gallery_show' => $raw['gallery_show'] ?? 1, 'video_url' => (string) ($raw['video_url'] ?? ''), 'video_pic' => (string) ($raw['video_pic'] ?? ''), 'video_title' => (string) ($raw['video_title'] ?? ''), 'video_episode' => $raw['video_episode'] ?? [], 'video_scale_height' => $raw['video_scale_height'] ?? 0, 'downloads' => $raw['downloads'] ?? [], 'attributes' => $raw['attributes'] ?? [], 'demo_url' => (string) ($raw['demo_url'] ?? ''), 'pay_title' => (string) ($raw['pay_title'] ?? ''), 'pay_doc' => (string) ($raw['pay_doc'] ?? ''), 'pay_details' => (string) ($raw['pay_details'] ?? ''), 'pay_extra_hide' => (string) ($raw['pay_extra_hide'] ?? ''), ]); update_post_meta($post_id, DomainModel::PAY_META_KEY, $meta); update_post_meta($post_id, DomainModel::PAY_TYPE_KEY, (string) $meta['pay_type']); update_post_meta($post_id, DomainModel::PAY_PRICE_KEY, $meta['pay_modo'] === 'points' ? (int) $meta['points_price'] : (string) $meta['price']); update_post_meta($post_id, '_aksrt_pay_modo', (string) $meta['pay_modo']); update_post_meta($post_id, '_aksrt_pay_limit', (int) $meta['pay_limit']); update_post_meta($post_id, DomainModel::RESOURCE_MARKER_KEY, DomainModel::is_resource_pay_type((string) $meta['pay_type']) ? 1 : 0); } }