Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何添加自定义产品元字段,即品牌、GTIN、MPN?_Php_Wordpress_Woocommerce - Fatal编程技术网

Php 如何添加自定义产品元字段,即品牌、GTIN、MPN?

Php 如何添加自定义产品元字段,即品牌、GTIN、MPN?,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我正在寻找添加自定义产品元显示在单一的产品,篮子和结帐。领域包括品牌、GTIN、MPN、平台、区域,可能还有出版商和开发者的空间。我不确定YOAST SEO是否会将此信息提交到我的网站地图?此外,如果我有一种方法可以使用这些代码来进行未来的添加,例如类型和发布日期,这将是很有帮助的。WooCommerce仅提供SKU、类别和标签作为默认产品 任何大小的帮助都是有价值的。多谢各位 有几个选项可以实现您的目标。我认为最简单的方法是将信息添加为产品属性。只需创建属性和值,然后将它们添加到产品中。我认为

我正在寻找添加自定义产品元显示在单一的产品,篮子和结帐。领域包括品牌、GTIN、MPN、平台、区域,可能还有出版商和开发者的空间。我不确定YOAST SEO是否会将此信息提交到我的网站地图?此外,如果我有一种方法可以使用这些代码来进行未来的添加,例如类型和发布日期,这将是很有帮助的。WooCommerce仅提供SKU、类别和标签作为默认产品

任何大小的帮助都是有价值的。多谢各位


有几个选项可以实现您的目标。我认为最简单的方法是将信息添加为产品属性。只需创建属性和值,然后将它们添加到产品中。我认为甚至有一个预先配置的品牌。要在产品页面上显示,您可以添加如下功能:

function your_product_facts() {
    global $product;
    $id = $product->get_id();
    $brand = $product->get_attribute('pa_brand');
    if ($brand) echo '<span class="brand-info">'.__('Brand: ').$brand.'</span>';
}
add_action('woocommerce_single_product_summary','your_product_facts',28);
function your_product_facts(){
全球$产品;
$id=$product->get_id();
$brand=$product->get_属性('pa_品牌');
如果($brand)回显“.”(“brand:”).$brand.”;
}
添加行动(“商业、单一产品、摘要”、“您的产品、事实”,28);
只要它出现在页面上,它也会被搜索引擎识别

另一个可能更适合于唯一值(如任何产品编号)的选项是添加自定义字段。这样,您就不必每次都预先配置这些值。 关于这一点,已有一些教程,我在这里不再重复。寻找 “woocommerce\u product\u data\u panels”,你会发现这样的博客:


编辑: 添加自定义产品选项卡和基本输入字段并将其输出到产品摘要的示例代码段:

/* New Product data tabs in admin */
// First Register the Tab by hooking into the 'woocommerce_product_data_tabs' filter
function your_product_data_tab( $tabs ) {
    $tabs['your-productdata'] = array(
        'label' => __( 'Field Name', 'woocommerce' ),
        'target' => 'your_product_data',
        'priority' => 21,
        'class'     => array( 'show_if_simple' ),
    );
    return $tabs;
}
add_filter( 'woocommerce_product_data_tabs', 'your_product_data_tab' );


/* CSS To Add Custom tab Icon */
function your_custom_product_data_style() { ?>
    <style>
        #woocommerce-product-data ul.wc-tabs li.your-productdata_options a:before { font-family: WooCommerce; content: '\25D0'; }
    </style>
    <?php
}
add_action( 'admin_head', 'your_custom_product_data_style' );

// functions to output text boxes, select boxes, etc.
function your_custom_product_data_fields() {
    global $post;
    // Note the 'id' attribute needs to match the 'target' parameter set above
    ?> <div id="your_product_data" class="panel woocommerce_options_panel">
        <div class="options_group">
            <?php
            woocommerce_wp_text_input(
                array(
                    'id' => '_your_gtin',
                    'label' => __( 'GTIN', 'your_text_domain' ),
                )
            );
            ?>
        </div>
    </div>
    <?php
}
add_action('woocommerce_product_data_panels', 'your_custom_product_data_fields');

/** Hook callback function to save custom fields information */
function your_save_proddata_custom_fields($post_id) {

    $gtin = $_POST['_your_gtin'];
    if (!empty($gtin )) {
        update_post_meta($post_id, '_gtin', esc_attr($gtin));
    }

}
add_action( 'woocommerce_process_product_meta_simple', 'your_save_proddata_custom_fields'  );


/* Add gtin info to all products */
function your_product_facts() {
    global $product;
    $id = $product->get_id();

    $gtin = get_post_meta($id, '_gtin', true );

    echo '<span class="my-gtin-field">'.__('GTIN:').$gtin.'</span>';
}
add_action('woocommerce_single_product_summary','your_product_facts',28);
/*管理中的新产品数据选项卡*/
//首先通过连接到“woocommerce\u product\u data\u tabs”过滤器来注册选项卡
使用您的产品数据选项卡($tabs){
$tabs['your-productdata']=数组(
'label'=>\('Field Name','woocommerce'),
'目标'=>'您的产品数据',
“优先级”=>21,
'class'=>array('show_if_simple'),
);
返回$tabs;
}
添加过滤器(“woocommerce\u product\u data\u tabs”、“your\u product\u data\u tab”);
/*添加自定义选项卡图标的CSS*/
函数您的\自定义\产品\数据\样式(){?>
#woocommerce产品数据ul.wc-tabs li.your-productdata_选项a:在{font-family:woocommerce;内容:'\25D0';}之前

信不信由你,WooCommerce默认情况下没有GTIN和MPN,只有SKU。我使用本教程在后端添加了GTIN字段,但在前端没有输出。啊,我明白了,我的GTIN字段是由“WooCommerce Germanized”添加的我一直使用它来遵守欧盟法律。我将从我的答案中删除它。但是,它的其余部分是有效的,并且适用于我创建的所有商店。现在在我的答案中添加了一些GTIN的示例代码。我刚刚尝试了你的代码,虽然它在单个产品上输出,但并不意味着它不是在SKU中分组的。此外,GTIN字段已被删除,以n完全在添加后进行后端。我做了一些搜索,发现使用名为Yoast WooCommerce SEO的插件可以优化产品提要的XML站点地图。该插件允许您定义产品品牌和产品制造商。输出的位置是一个将“您的产品事实”操作添加到何处的问题。我不敢相信该字段在后端消失了。它现在必须在新产品选项卡下。但是,是的,如果你不确定你在这里做什么,听起来你最好去使用一些插件(ACF?)。