Я использую плагин от различных поставщиков (Dokan) и настраиваю его. Одна вещь, которую я хочу достичь и с которой борюсь, - это то, что я хочу, чтобы мое расширенное настраиваемое поле (также плагин) для отдельного продукта действительно отображалось во внешнем интерфейсе в одной из форм панели инструментов продавца Dokan (раздел редактирования продукта).
Я хочу, чтобы мой продавец мог выбрать бренд (мое поле acf) на внешней странице.
Обычно, когда мы добавляем новую группу полей acf и назначаем ее архиву, поле появляется на сервере.
Я обнаружил, что этого довольно сложно достичь, особенно добавляя настраиваемое поле в существующую интерфейсную форму.
Я пытаюсь настроить его, и, наконец, у меня появилось поле в форме, которую я хочу, но затем возникла другая проблема: кнопка сохранения в исходной форме больше не нажимается.
См. Снимок экрана: https://gyazo.com/dfb20ed90e773723658979c515581730
и вот код, который я попытался добавить в свой single-product-new.php Dokan:
<?php acf_form_head(); ?>
<div class=”dokan-form-group”>
<?php
$product_brand = -1;
$term = array();
$term = wp_get_post_terms( $post_id, ‘brand’, array( ‘fields’ => ‘ids’) );
if ( $term ) {
$product_brand = reset( $term );
}
include_once DOKAN_LIB_DIR.’/class.category-walker.php’;
include_once DOKAN_LIB_DIR. ‘acf.php’;
$brand_args = array(
‘hierarchical’ => 1,
‘hide_empty’ => 0,
‘fields’ => array(‘brand’),
‘name’ => ‘brand’,
‘id’ => ‘brand’,
‘taxonomy’ => ‘brand’,
‘title_li’ => ”,
‘class’ => ‘product_brand dokan-form-control dokan-select2’,
‘exclude’ => ”,
‘selected’ => $product_brand,
‘walker’ => new DokanCategoryWalker( $post_id )
);
acf_form($brand_args);
?>
<div class=”dokan-product-cat-alert dokan-hide”>
<?php esc_html_e(‘Please choose a brand!’, ‘dokan-lite’ ); ?>
</div>
</div>
Я знаю, что это неправильно, но каким-то образом этот код помог мне перенести расширенное настраиваемое поле в нужную мне форму, и он фактически сохраняет данные поля в продукте, когда вы нажимаете кнопку «Обновить».
Я подумал, может быть, стоит обойти это в дочерней теме function.php ...
Любая помощь будет очень признательна!
Люк