feat(shop): complete storefront archive, seller edit, revenue
Wire product cat/tag archives to settings-driven sort and AJAX paging, seller product options/video/params editing, revenue withdraw form and order review submit — finishing remaining shop frontend gaps after buy-path.
This commit is contained in:
1 parent
5a8f08db8a
commit
f3db6c89cc
17 files changed
+1024
-248
No files matched your search
@@ -91,7 +91,49 @@ $product = (array) ($edit_view['product'] ?? []);
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="aksrt-product-editor__panel">
|
||||
<h2><?php esc_html_e('规格选项', 'aksrt'); ?></h2>
|
||||
<p class="aksrt-product-editor__hint"><?php esc_html_e('每行一组:规格名|选项1:加价,选项2:加价。例如:颜色|红:0,蓝:10', 'aksrt'); ?></p>
|
||||
<label class="aksrt-product-editor__field">
|
||||
<span><?php esc_html_e('规格配置', 'aksrt'); ?></span>
|
||||
<textarea name="options_text" class="aksrt-product-editor__textarea" rows="6" data-aksrt-options-text placeholder="颜色|红:0,蓝:10 尺码|M:0,L:5"><?php
|
||||
$opt_lines = [];
|
||||
foreach ((array) ($product['options'] ?? []) as $group) {
|
||||
$vals = [];
|
||||
foreach ((array) ($group['values'] ?? []) as $v) {
|
||||
$vals[] = (string) ($v['label'] ?? '') . ':' . (string) ($v['price_change'] ?? 0);
|
||||
}
|
||||
if (!empty($group['name']) && $vals) {
|
||||
$opt_lines[] = (string) $group['name'] . '|' . implode(',', $vals);
|
||||
}
|
||||
}
|
||||
echo esc_textarea(implode("\n", $opt_lines));
|
||||
?></textarea>
|
||||
</label>
|
||||
<div class="aksrt-product-editor__columns">
|
||||
<label class="aksrt-product-editor__field">
|
||||
<span><?php esc_html_e('起售价', 'aksrt'); ?></span>
|
||||
<input type="number" name="start_price" class="aksrt-product-editor__input" min="0" step="0.01" value="<?php echo esc_attr((string) ($product['start_price'] ?? 0)); ?>">
|
||||
</label>
|
||||
<label class="aksrt-product-editor__field">
|
||||
<span><?php esc_html_e('支付模式', 'aksrt'); ?></span>
|
||||
<select name="pay_modo" class="aksrt-product-editor__input">
|
||||
<option value="0" <?php selected((string) ($product['pay_modo'] ?? '0'), '0'); ?>><?php esc_html_e('现金', 'aksrt'); ?></option>
|
||||
<option value="points" <?php selected((string) ($product['pay_modo'] ?? '0'), 'points'); ?>><?php esc_html_e('积分', 'aksrt'); ?></option>
|
||||
</select>
|
||||
</label>
|
||||
</div>
|
||||
<label class="aksrt-product-editor__field">
|
||||
<span><?php esc_html_e('商品参数(每行 名称:值)', 'aksrt'); ?></span>
|
||||
<textarea name="product_params" class="aksrt-product-editor__textarea" rows="4"><?php echo esc_textarea((string) ($product['product_params'] ?? '')); ?></textarea>
|
||||
</label>
|
||||
<label class="aksrt-product-editor__field">
|
||||
<span><?php esc_html_e('视频地址(每行一个 URL)', 'aksrt'); ?></span>
|
||||
<textarea name="product_video" class="aksrt-product-editor__textarea" rows="3"><?php echo esc_textarea(implode("\n", (array) ($product['product_video'] ?? []))); ?></textarea>
|
||||
</label>
|
||||
</div>
|
||||
<div class="aksrt-product-editor__panel">
|
||||
<h2><?php esc_html_e('发货与售后', 'aksrt'); ?></h2>
|
||||
<div class="aksrt-product-editor__columns">
|
||||
<label class="aksrt-product-editor__field">
|
||||
|
||||
Reference in new issue
Block a user