加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > CMS系统 > wordpress > 正文

WooCommerce 添加商品分类自定义字段

发布时间:2020-12-14 14:23:45 所属栏目:wordpress 来源:网络整理
导读:由站长 通过网络收集整理的代码片段。编程之家小编现在分享给大家,也给大家做个参考。 WooCommerce 是最流行的 wordpress 电子商务插件,在开发 WooCommerce 主题的时候,难免要添加一些自定义字段来满足我们的需求。WooCommerce 是基于 Wo

以下代码由PHP站长网 52php.cn收集自互联网现在PHP站长网小编把它分享给大家,仅供参考

WooCommerce 是最流行的 wordpress 电子商务插件,在开发 WooCommerce 主题的时候,难免要添加一些自定义字段来满足我们的需求。WooCommerce 是基于 WordPress 的生态系统开发的,所以,很多 WordPress 的 API 我们都可以直接用在 WooCommerce 中。下面我们以一个为分类添加字体图标的需求来讲解一下怎么为 WooCommerce 的商品分类添加自定义字段,效果如下。


添加表单到商品分类添加页面

首先是商品分类添加页面,我们添加一个图标的表单,用户填写图标的名称,我是用的字体图标,当然,也可以是图片网址。这里我们使用 WooCommerce 自定义的 product_cat_add_form_fields 来把表单添加到商品分类添加页面。

// 分类添加表单

function tutorialshares_taxonomy_add_new_meta_field() {

// this will add the custom meta field to the add new term page

?>

<div class="form-field">

<label for="term_meta[term_icon]"><?php _e( '图标','woocommerce' ); ?></label>

<input class="regular-text" type="text" name="term_meta[term_icon]" id="term_meta[term_icon]" value="">

</div>

<?php

}

add_action( 'product_cat_add_form_fields','tutorialshares_taxonomy_add_new_meta_field',10,2 );

添加表单到商品分类编辑页面

商品分类编辑页面用的是 product_cat_edit_form_fields,和上面的基本上是差不多的,只不过多了已经添加过的数据,其实两个是可以合并成一个功能的。

// 分类编辑表单

function tutorialshares_taxonomy_edit_meta_field($term) {

// put the term ID into a variable

$t_id = $term->term_id;

?

// retrieve the existing value(s) for this meta field. This returns an array

$term_meta = get_option( "taxonomy_$t_id" ); ?>

<tr class="form-field">

<th scope="row" valign="top"><label for="term_meta[term_icon]"><?php _e( '图标','woocommerce' ); ?></label></th>

<td>

<input class="regular-text" type="text" name="term_meta[term_icon]" id="term_meta[term_icon]" value="<?php echo esc_attr( $term_meta['term_icon'] ) ? esc_attr( $term_meta['term_icon'] ) : ''; ?>">

</td>

</tr>

<?php

}

add_action( 'product_cat_edit_form_fields','tutorialshares_taxonomy_edit_meta_field',2 );

最后,我们需要把提交的数据保存到数据库中

WooCommercce 直接把商品分类字段保存在了 WordPress 的 wp_options 数据表中,个人觉得这是一个很好的设计,因为商品分类的自定义字段一般不会很多,专门为此新建一个数据表就增加了很多复杂度,WordPress 的 wp_options 基本上是 k-v 性质的,也很适合自定义字段这种类型的数据。WordPress 也提供了很方便的功能接口,直接用 update_option 保存数据即可,

// 保存分类数据

function save_taxonomy_custom_meta( $term_id ) {

if ( isset( $_POST['term_meta'] ) ) {

$t_id = $term_id;

$term_meta = get_option( "taxonomy_$t_id" );

$cat_keys = array_keys( $_POST['term_meta'] );

foreach ( $cat_keys as $key ) {

if ( isset ( $_POST['term_meta'][$key] ) ) {

$term_meta[$key] = $_POST['term_meta'][$key];

}

}

// Save the option array.

update_option( "taxonomy_$t_id",$term_meta );

}

}

add_action( 'edited_product_cat','save_taxonomy_custom_meta',2 );

add_action( 'create_product_cat',2 );

调用商品分类自定义字段数据

从上面保存数据的代码中可以看出来。WooCommerce 把商品分类的自定义字段保存到 wp_options 数据表中了,调用这个数据的时候,我们直接用 WordPress 的 get_option 函数就可以了。

$meta_field_array = get_option('taxonomy_'. $term->term_id);

$meta_icon = $meta_field_array['term_icon'];

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读