ID, '_aksrt_price', true);
$stock = (int) get_post_meta($post->ID, '_aksrt_stock', true);
$image = (string) get_post_meta($post->ID, '_aksrt_product_image', true);
$gallery = get_post_meta($post->ID, '_aksrt_product_gallery', true);
$gallery = is_array($gallery) ? $gallery : [];
$shipping_mode = (string) get_post_meta($post->ID, '_aksrt_shipping_mode', true);
$shipping_fee = (float) get_post_meta($post->ID, '_aksrt_shipping_fee', true);
$shipping_fee_type = (string) (get_post_meta($post->ID, '_aksrt_shipping_fee_type', true) ?: 'fixed');
$shipping_fee_free = (float) get_post_meta($post->ID, '_aksrt_shipping_fee_free_amount', true);
$shipping_delivery = (string) get_post_meta($post->ID, '_aksrt_shipping_delivery_desc', true);
$shipping_tip = (string) get_post_meta($post->ID, '_aksrt_shipping_tip', true);
$after_sale_policy = (string) get_post_meta($post->ID, '_aksrt_after_sale_policy', true);
$support_refund = get_post_meta($post->ID, '_aksrt_support_refund', true);
$support_refund = $support_refund === '' ? '1' : (string) $support_refund;
$service = (string) get_post_meta($post->ID, '_aksrt_service', true);
$service_tip = (string) get_post_meta($post->ID, '_aksrt_service_tip', true);
$limit_buy = get_post_meta($post->ID, '_aksrt_limit_buy', true);
$limit_buy = $limit_buy === '' ? -1 : (int) $limit_buy;
$limit_buy_note = (string) get_post_meta($post->ID, '_aksrt_limit_buy_note', true);
$stock_type = (string) (get_post_meta($post->ID, '_aksrt_stock_type', true) ?: 'all');
$pay_modo = (string) (get_post_meta($post->ID, '_aksrt_pay_modo', true) ?: '0');
$start_price = (float) get_post_meta($post->ID, '_aksrt_start_price', true);
$product_rebate = (string) get_post_meta($post->ID, '_aksrt_product_rebate', true);
$product_params = (string) get_post_meta($post->ID, '_aksrt_product_params', true);
$user_required = (string) get_post_meta($post->ID, '_aksrt_user_required', true);
$delivery_note = (string) get_post_meta($post->ID, '_aksrt_delivery_note', true);
$marketing = (string) get_post_meta($post->ID, '_aksrt_marketing_headline', true);
$shipping_modes = [
'' => __('默认(继承设置)', 'aksrt'),
'express' => __('快递物流', 'aksrt'),
'auto' => __('自动发货', 'aksrt'),
'manual' => __('手动发货', 'aksrt'),
'virtual' => __('虚拟商品', 'aksrt'),
];
$stock_types = [
'all' => __('统一库存', 'aksrt'),
'opts' => __('按选项/变体', 'aksrt'),
];
$fee_types = [
'free' => __('包邮', 'aksrt'),
'fixed' => __('固定运费', 'aksrt'),
'amount_free' => __('满额包邮', 'aksrt'),
];
?>
post_type !== 'aksrt_product') {
return;
}
if (!current_user_can('edit_post', $post_id)) {
return;
}
$price = isset($_POST['aksrt_price']) ? max(0, (float) wp_unslash($_POST['aksrt_price'])) : 0;
$stock = isset($_POST['aksrt_stock']) ? (int) wp_unslash($_POST['aksrt_stock']) : 0;
if ($stock < -1) {
$stock = -1;
}
$image = isset($_POST['aksrt_product_image']) ? esc_url_raw((string) wp_unslash($_POST['aksrt_product_image'])) : '';
$gallery_raw = isset($_POST['aksrt_product_gallery']) ? (string) wp_unslash($_POST['aksrt_product_gallery']) : '';
$gallery = array_values(array_filter(array_map(
static function ($line) {
return esc_url_raw(trim((string) $line));
},
preg_split('/\r\n|\r|\n/', $gallery_raw) ?: []
)));
$shipping_mode = isset($_POST['aksrt_shipping_mode']) ? sanitize_key((string) wp_unslash($_POST['aksrt_shipping_mode'])) : '';
$shipping_fee = isset($_POST['aksrt_shipping_fee']) ? max(0, (float) wp_unslash($_POST['aksrt_shipping_fee'])) : 0;
$shipping_fee_type = isset($_POST['aksrt_shipping_fee_type']) ? sanitize_key((string) wp_unslash($_POST['aksrt_shipping_fee_type'])) : 'fixed';
if (!in_array($shipping_fee_type, ['free', 'fixed', 'amount_free'], true)) {
$shipping_fee_type = 'fixed';
}
$shipping_fee_free = isset($_POST['aksrt_shipping_fee_free_amount']) ? max(0, (float) wp_unslash($_POST['aksrt_shipping_fee_free_amount'])) : 0;
$shipping_delivery = isset($_POST['aksrt_shipping_delivery_desc']) ? sanitize_text_field((string) wp_unslash($_POST['aksrt_shipping_delivery_desc'])) : '';
$shipping_tip = isset($_POST['aksrt_shipping_tip']) ? sanitize_text_field((string) wp_unslash($_POST['aksrt_shipping_tip'])) : '';
$policy = isset($_POST['aksrt_after_sale_policy']) ? sanitize_textarea_field((string) wp_unslash($_POST['aksrt_after_sale_policy'])) : '';
$support_refund = !empty($_POST['aksrt_support_refund']) ? '1' : '0';
$service = isset($_POST['aksrt_service']) ? sanitize_textarea_field((string) wp_unslash($_POST['aksrt_service'])) : '';
$service_tip = isset($_POST['aksrt_service_tip']) ? sanitize_text_field((string) wp_unslash($_POST['aksrt_service_tip'])) : '';
$limit_buy = isset($_POST['aksrt_limit_buy']) ? max(-1, min(9999, (int) wp_unslash($_POST['aksrt_limit_buy']))) : -1;
$limit_buy_note = isset($_POST['aksrt_limit_buy_note']) ? sanitize_text_field((string) wp_unslash($_POST['aksrt_limit_buy_note'])) : '';
$stock_type = isset($_POST['aksrt_stock_type']) ? sanitize_key((string) wp_unslash($_POST['aksrt_stock_type'])) : 'all';
if (!in_array($stock_type, ['all', 'opts'], true)) {
$stock_type = 'all';
}
$pay_modo = isset($_POST['aksrt_pay_modo']) ? sanitize_key((string) wp_unslash($_POST['aksrt_pay_modo'])) : '0';
if (!in_array($pay_modo, ['0', 'points'], true)) {
$pay_modo = '0';
}
$start_price = isset($_POST['aksrt_start_price']) ? max(0, (float) wp_unslash($_POST['aksrt_start_price'])) : 0;
$product_rebate = isset($_POST['aksrt_product_rebate']) ? sanitize_text_field((string) wp_unslash($_POST['aksrt_product_rebate'])) : '';
$product_params = isset($_POST['aksrt_product_params']) ? sanitize_textarea_field((string) wp_unslash($_POST['aksrt_product_params'])) : '';
$user_required = isset($_POST['aksrt_user_required']) ? sanitize_textarea_field((string) wp_unslash($_POST['aksrt_user_required'])) : '';
$delivery_note = isset($_POST['aksrt_delivery_note']) ? sanitize_text_field((string) wp_unslash($_POST['aksrt_delivery_note'])) : '';
$marketing = isset($_POST['aksrt_marketing_headline']) ? sanitize_text_field((string) wp_unslash($_POST['aksrt_marketing_headline'])) : '';
update_post_meta($post_id, '_aksrt_price', $price);
update_post_meta($post_id, '_aksrt_stock', $stock);
update_post_meta($post_id, '_aksrt_product_image', $image);
update_post_meta($post_id, '_aksrt_product_gallery', $gallery);
update_post_meta($post_id, '_aksrt_shipping_mode', $shipping_mode);
update_post_meta($post_id, '_aksrt_shipping_type', $shipping_mode);
update_post_meta($post_id, '_aksrt_shipping_fee', $shipping_fee);
update_post_meta($post_id, '_aksrt_shipping_fee_type', $shipping_fee_type);
update_post_meta($post_id, '_aksrt_shipping_fee_free_amount', $shipping_fee_free);
update_post_meta($post_id, '_aksrt_shipping_delivery_desc', $shipping_delivery);
update_post_meta($post_id, '_aksrt_shipping_tip', $shipping_tip);
update_post_meta($post_id, '_aksrt_after_sale_policy', $policy);
update_post_meta($post_id, '_aksrt_support_refund', $support_refund);
update_post_meta($post_id, '_aksrt_service', $service);
update_post_meta($post_id, '_aksrt_service_tip', $service_tip);
update_post_meta($post_id, '_aksrt_limit_buy', $limit_buy);
update_post_meta($post_id, '_aksrt_limit_buy_note', $limit_buy_note);
update_post_meta($post_id, '_aksrt_stock_type', $stock_type);
update_post_meta($post_id, '_aksrt_pay_modo', $pay_modo);
update_post_meta($post_id, '_aksrt_start_price', $start_price);
update_post_meta($post_id, '_aksrt_product_rebate', $product_rebate);
update_post_meta($post_id, '_aksrt_product_params', $product_params);
update_post_meta($post_id, '_aksrt_user_required', $user_required);
update_post_meta($post_id, '_aksrt_delivery_note', $delivery_note);
update_post_meta($post_id, '_aksrt_marketing_headline', $marketing);
// Keep sales counter present for list columns.
if (get_post_meta($post_id, '_aksrt_sales', true) === '') {
update_post_meta($post_id, '_aksrt_sales', 0);
}
}
}