0

这个问题已经在这里问过How Add Custom Meta Fields to Dokan in New Product

但是没有人回答这个问题。我想要达到的目标如下:

需要在 Dokan Vendor Dashboard 中显示自定义字段,插件作者对此回答“您必须自定义 Dokan 插件才能在产品上传表单上添加额外字段。请打开 dokan-lite/templates/products/new-product.php 和在此文件中,您必须添加一个额外的字段。由于我们不支持自定义我们的插件,因此我无法提供更具体的说明:)”

我已经使用 Fields Factory 插件创建了自定义字段,并且它在“添加单个产品”页面中显示良好。Woocommerce 单一产品后端

但是我无法在下面的 Dokan 插件屏幕截图中添加该字段以获取该位置。

Dokan 供应商仪表板

4

3 回答 3

3

他有同样的问题,他通过以下方式解决了它。

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/的另一个解决方案

于 2018-01-26T14:31:32.387 回答
0

默认情况下,这是不可能的,但您可以修改 Dokan 产品上传表单以添加自定义分类。您可以通过子主题覆盖dokan-lite/templates/products文件夹,然后编辑必要的文件:)

现在剩下的过程需要你来完成。但是,添加输入字段后,您必须保存字段的值。在那个地方你必须使用do_action( 'dokan_new_product_added', $product_id, $post_data );这个钩子来保存字段数据。

当您将编辑产品时,您必须使用do_action( 'dokan_product_updated', $post_id );重新保存。

于 2019-05-29T05:28:19.553 回答
0

您需要覆盖您的 dokan 插件模板。首先,您需要在活动主题的根目录中创建“dokan”文件夹,然后,您需要在 /plugins/dokan/templates/ 中找到 dokan 模板文件,并在您的主题文件夹中重新创建它并添加其他字段。之后,您需要通过 functions.php 中的 update_user_meta 函数保存新变量

于 2017-11-17T08:04:37.833 回答