如何移除Dokan RMA中的No Warranty保修选项
隐藏保修选择框中的"No warranty"选项
有两种可靠的方法可以实现需求:
方法1:直接修改模板循环逻辑
在foreach循环中添加条件判断,当键值为No warranty时跳过该选项的输出。修改后的代码如下:
<select name="warranty_type" id="dokan-warranty-type" class="dokan-form-control"> <?php foreach ( dokan_rma_warranty_type() as $warranty_key => $warranty_value ): ?> <?php if ($warranty_key !== 'No warranty'): ?> <option value="<?php echo $warranty_key; ?>" <?php selected( $rma_settings['type'], $warranty_key ); ?>><?php echo $warranty_value; ?></option> <?php endif; ?> <?php endforeach ?> </select>
该方法直接在输出层过滤,简单直观,适合直接修改模板文件的场景。
方法2:通过钩子过滤选项列表(推荐)
如果不想修改模板代码,可以利用WordPress的钩子机制,过滤dokan_rma_warranty_type函数的返回值,提前移除No warranty选项。在主题的functions.php文件中添加以下代码:
add_filter( 'dokan_rma_warranty_type', 'remove_no_warranty_option' ); function remove_no_warranty_option( $warranty_types ) { // 检查键是否存在,避免报错 if ( isset( $warranty_types['No warranty'] ) ) { unset( $warranty_types['No warranty'] ); } return $warranty_types; }
这种方法无需改动模板,更符合WordPress开发的最佳实践,后续模板更新时不会丢失修改。
内容的提问来源于stack exchange,提问作者OVVO
相关产品推荐
相关产品推荐

