0

我正在开发一家多供应商商店,我希望供应商从模板页面发布产品。我正在使用高级自定义字段来实现此功能。到目前为止,我所做的是创建页面模板并设法显示表单,但我在使用产品验证字段时遇到了一些问题。我可能需要创建一些功能?

    <?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,

如何将标题值、描述值、价格值和图像分配给产品帖子?我不需要找人给我提供代码来替换,我想知道怎么做,给我一些想法,或者在哪里阅读如何做。

先感谢您!

4

1 回答 1

0

首先,深入阅读acf_form()的工作原理。

在 woocommerce 中添加产品的 acf_form() 代码可能如下所示:

$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);

关于产品的特色图片,创建一个图片字段并使用下面的代码将该字段与特色图片同步。您可以通过检查acf/update_value的 ACF API 参考来了解更多信息

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);
于 2018-01-20T13:07:05.063 回答