如何在Dokan新增产品页添加自定义MP3字段并移除标签选项
在Dokan中添加MP3演示音频自定义字段并移除标签选项
一、添加商家MP3演示音频上传字段
1. 在Dokan产品编辑页面添加上传字段
将以下代码添加到主题的functions.php文件或自定义代码插件中,它会在产品编辑页面的主内容区域后添加MP3上传输入框和媒体选择按钮:
// 在Dokan产品编辑页面添加MP3上传字段 add_action('dokan_product_edit_after_main', 'dokan_add_mp3_demo_field'); function dokan_add_mp3_demo_field() { global $post; $mp3_url = get_post_meta($post->ID, '_dokan_mp3_demo', true); ?> <div class="dokan-form-group"> <label for="mp3_demo" class="dokan-w3 dokan-control-label"><?php _e('MP3演示音频', 'dokan'); ?></label> <div class="dokan-w9"> <input type="text" id="mp3_demo" name="mp3_demo" value="<?php echo esc_url($mp3_url); ?>" class="dokan-form-control" /> <button type="button" class="dokan-btn dokan-btn-default dokan-upload-mp3-btn"><?php _e('选择音频', 'dokan'); ?></button> </div> </div> <script> jQuery(document).ready(function($) { $('.dokan-upload-mp3-btn').click(function(e) { e.preventDefault(); var customUploader = wp.media({ title: '选择MP3音频', button: { text: '使用此音频' }, library: { type: 'audio/mp3' }, multiple: false }).on('select', function() { var attachment = customUploader.state().get('selection').first().toJSON(); $('#mp3_demo').val(attachment.url); }).open(); }); }); </script> <?php }
2. 保存MP3字段数据
添加以下代码确保新增或编辑产品时,MP3音频URL能被保存到产品元数据中:
// 保存MP3演示音频字段数据 add_action('dokan_new_product_added', 'dokan_save_mp3_demo_field'); add_action('dokan_product_updated', 'dokan_save_mp3_demo_field'); function dokan_save_mp3_demo_field($post_id) { if(isset($_POST['mp3_demo'])) { update_post_meta($post_id, '_dokan_mp3_demo', esc_url_raw($_POST['mp3_demo'])); } else { delete_post_meta($post_id, '_dokan_mp3_demo'); } }
3. 在前端产品页面展示音频播放器
添加以下代码,在产品详情页展示HTML5音频播放器(可调整钩子优先级改变展示位置):
// 在前端产品页面展示MP3演示音频 add_action('woocommerce_single_product_summary', 'dokan_display_mp3_demo_player', 25); function dokan_display_mp3_demo_player() { $mp3_url = get_post_meta(get_the_ID(), '_dokan_mp3_demo', true); if($mp3_url) { echo '<div class="dokan-mp3-demo">'; echo '<h4>' . __('MP3演示', 'dokan') . '</h4>'; echo '<audio controls>'; echo '<source src="' . esc_url($mp3_url) . '" type="audio/mpeg">'; _e('你的浏览器不支持音频播放', 'dokan'); echo '</audio>'; echo '</div>'; } }
二、移除Dokan产品编辑页面的“标签”选项
使用以下任意一种代码即可彻底移除标签选项(无需CSS隐藏):
方法1:移除标签Metabox
// 移除Dokan产品编辑页面的标签选项 add_filter('dokan_product_metaboxes', 'dokan_remove_product_tags_metabox'); function dokan_remove_product_tags_metabox($metaboxes) { if(isset($metaboxes['tags'])) { unset($metaboxes['tags']); } return $metaboxes; }
方法2:取消产品对标签的支持
// 取消WooCommerce产品的标签支持 add_action('init', 'dokan_remove_product_tag_support'); function dokan_remove_product_tag_support() { unregister_taxonomy_for_object_type('product_tag', 'product'); }
内容的提问来源于stack exchange,提问作者user19768988
相关产品推荐
相关产品推荐

