Отображение пользовательского поля выбора в Dokan Vendor Dashboard

Этот вопрос уже задавался здесь. Как добавить пользовательские мета-поля в Dokan в новом продукте

Но никто не ответил на этот вопрос. Я пытаюсь достичь следующего:

Необходимо отобразить настраиваемое поле в Dokan Vendor Dashboard, у автора плагина есть ответ: "Вам нужно настроить плагин Dokan, чтобы добавить дополнительное поле в форму выгрузки продукта. Откройте dokan-lite / templates / products / new-product.php и в этом файле вы должны добавить дополнительное поле. Так как мы не предоставляем поддержку для настройки нашего плагина по этой причине, я не могу предоставить более конкретную инструкцию:)"

Я создал настраиваемое поле, уже используя плагин Fields Factory, и оно прекрасно отображается на странице "Добавить отдельный продукт". Woocommerce единый бэкэнд продукта

Но я не могу добавить это поле на скриншоте Dokan Plugin ниже для местоположения.

Dokan Vendor Dashboard

2 ответа

У него была такая же проблема, и он решил ее следующим образом.

В 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/

Вам необходимо переопределить шаблоны плагинов DoKAN. Во-первых, вам нужно создать папку "dokan" в корне вашей активной темы, после чего вам нужно найти файл шаблона dokan в / plugins / dokan / templates /, воссоздать его в папке вашей темы и добавить дополнительное поле. После этого вам нужно сохранить новую переменную с помощью функции update_user_meta в functions.php

По умолчанию это невозможно, но вы можете изменить форму загрузки продукта Dokan, чтобы добавить собственные таксономии. Вы можете переопределитьdokan-lite/templates/products папку через дочернюю тему, а затем отредактируйте нужный файл:)

Теперь остальная часть процесса должна быть сделана вами. Однако после добавления поля ввода вы должны сохранить значение поля. В этом месте вы должны использоватьdo_action( 'dokan_new_product_added', $product_id, $post_data ); этот хук для сохранения данных поля.

Когда вы будете редактировать продукт, в этот раз вам придется использовать do_action( 'dokan_product_updated', $post_id ); повторно сохранить.

Другие вопросы по тегам