Я занимаюсь разработкой мультивендорного магазина и хочу, чтобы продавцы размещали товары на странице шаблона. Я использую пользовательские поля Advance для достижения этой функциональности.
На данный момент я создал шаблон страницы и смог отобразить форму, но у меня возникла проблема с проверкой полей с помощью Продукта. мне может понадобиться создать некоторые функции?
<?php
/**
* The template for displaying all pages.
* Template Name: Add Product Vendor
* This is the template that displays all pages by default.
* Please note that this is the WordPress construct of pages
* and that other 'pages' on your WordPress site will use a
* different template.
*
* @package Bober
*/
?>
<?php
acf_form_head();
get_header();
?>
<div id="content">
<?php
global $woocommerce;
acf_form(array(
$post_title = 'field_5a60022b402e2',
$post_categ = 'field_5a60028e402e3',
$post_descrip = 'field_5a600384402e4',
$post_img = 'field_5a6005e1402e7',
$post_price = 'field_5a61207ce5226',
/*'post_title' =>true,
'post_content' => true,*/
'uploader' => 'basic',
'post_id' => 'new_post',
'fields' => array($post_title, $post_descrip, $post_categ,$post_price, $post_img),
'new_post' => array(
'post_status' => 'draft',
'post_type' =>'product',
),
/*'fields' => array('field_5a60022b402e2', 'field_5a60028e402e3', 'field_5a600384402e4', 'field_5a6005e1402e7'),*/'submit_value' => 'Add product'
));
?>
</div>
<?php get_footer(); ?>
В этот момент я смог присвоить название продукта и его содержание, используя приведенный ниже код на основе документации формы ACF.
'post_title' =>true,
'post_content' => true,
Как назначить значение Заголовок, значение описания, цену и изображение для публикации продукта? Мне не нужно, чтобы кто-то предоставил мне код для замены, я хочу знать, как это сделать, дать мне несколько идей или узнать, как это сделать.
Заранее спасибо!
Во-первых, прочитайте, как acf_form () работает.
Код acf_form () для добавления товара в woocommerce может выглядеть так:
$options = array(
'post_id' => 'new_post',
'post_title' => true,
'post_content' => true,
'new_post' => array(
'post_type' => 'product',
'post_status' => 'draft'
),
'field_groups' => [$field_group_id],
'form' => true,
'return' => '%post_url%', // so they could be redirected to the product page in a draft state - i imagine?!
'html_submit_button' => '<input type="submit" value="%s" />',
'updated_message' => 'Product Created',
'submit_value' => 'Submit Product'
);
acf_form($options);
Что касается показанного изображения продукта, создайте поле изображения и используйте приведенный ниже код для синхронизации поля с избранным изображением. Вы можете узнать больше об этом, проверив ссылку на API ACF для ACF / update_value
add_filter('acf/update_value/name=featured_image', function ($value, $post_id, $field) {
if ($value != '') {
update_post_meta($post_id, '_thumbnail_id', $value);
} else {
delete_post_thumbnail($post_id);
}
return $value;
}, 10, 3);
Других решений пока нет …