这是How Add Custom Meta Fields to Dokan in New Product
已经提出的问题但没有人回答这个问题。我想要实现的是:
需要在Dokan Vendor Dashboard中显示自定义字段,插件作者已回复此 "您必须自定义Dokan插件才能在产品上传表单中添加额外字段。请打开dokan-lite / templates / products / new-product.php,在此文件中,您必须添加一个额外的字段。由于我们不提供支持来定制我们的插件,我无法提供更具体的说明:)"
我已经使用Fields Factory插件创建了自定义字段,并且在“添加单个产品”页面中显示正常。
但是我无法在下面的Dokan插件屏幕截图中添加该字段。
答案 0 :(得分:1)
他遇到了同样的问题,他用以下方式解决了这个问题。
在wp-content/plugins/dokan-pro/templates/products/product-edit.php
:
<div class="dokan-form-group">
<div class="dokan-input-group">
<span class="dokan-input-group-addon">Precio por: <?php echo get_post_meta( $post->ID, "wccaf_precio_por_", true ); ?></span>
<div class="dokan-w4">
<select class="wccaf-field " name="wccaf_precio_por_" wccaf-type="select" wccaf-pattern="mandatory" wccaf-mandatory="yes">
<option value="wccpf_none">Precio corresponde a :</option>
<option value="Caja">Caja</option>
<option value="mt2">mt2</option>
<option value="c/u">c/u</option>
<option value="Galón">Galón</option>
</select>
</div>
</div>
</div>
然后在wp-content/themes/you-template/funtions.php
中添加:
add_action( 'woocommerce_process_product_meta', 'x_add_fields_save' );
add_action( 'dokan_process_product_meta', 'x_add_fields_save' );
add_action( 'dokan_new_product_added', 'x_add_fields_save' );
function x_add_fields_save( $post_id ){
// Number Field
$woocommerce_wccaf_precio_por_ = $_POST['wccaf_precio_por_'];
if( !empty( $woocommerce_wccaf_precio_por_) )
update_post_meta( $post_id, 'wccaf_precio_por_', esc_attr( $woocommerce_wccaf_precio_por_ ) );
}
我正在使用另一个插件来控制作为wc字段工厂https://wordpress.org/plugins/wc-fields-factory/的字段,这就是为什么我使用缩写wccaf_ 如果你想自定义选择不使用另一个插件,这是我的另一个解决方案 https://wedevs.com/support/topic/adding-metadata-to-product-form/
答案 1 :(得分:0)
您需要覆盖dokan插件模板。首先,您需要在活动主题的根目录中创建“dokan”文件夹,之后,您需要在/ plugins / dokan / templates /中找到dokan模板文件,并在主题文件夹中重新创建它并添加其他字段。之后,您需要通过functions.php
中的update_user_meta函数保存新变量答案 2 :(得分:0)
默认情况下,这是不可能的,但是您可以修改Dokan产品上传表单以添加自定义分类法。您可以通过子主题覆盖dokan-lite/templates/products
文件夹,然后编辑所需的文件:)
现在剩下的过程需要您完成。但是,在添加输入文件之后,您必须保存该字段的值。在那个地方,您必须使用do_action( 'dokan_new_product_added', $product_id, $post_data );
这个钩子来保存字段数据。
那时候您要编辑产品时,必须使用do_action( 'dokan_product_updated', $post_id );
重新保存。