!
也想出现在这里? 联系我们
广告位

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

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

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

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

  1. // 分类添加表单
  2. function tutorialshares_taxonomy_add_new_meta_field() {
  3. // this will add the custom meta field to the add new term page
  4. ?>
  5. <div class="form-field">
  6. <label for="term_meta[term_icon]"><?php _e( '图标', 'woocommerce' ); ?></label>
  7. <input class="regular-text" type="text" name="term_meta[term_icon]" id="term_meta[term_icon]" value="">
  8. </div>
  9. <?php
  10. }
  11. add_action( 'product_cat_add_form_fields', 'tutorialshares_taxonomy_add_new_meta_field', 10, 2 );

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

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

  1. // 分类编辑表单
  2. function tutorialshares_taxonomy_edit_meta_field($term) {
  3. // put the term ID into a variable
  4. $t_id = $term->term_id;
  5. // retrieve the existing value(s) for this meta field. This returns an array
  6. $term_meta = get_option( "taxonomy_$t_id" ); ?>
  7. <tr class="form-field">
  8. <th scope="row" valign="top"><label for="term_meta[term_icon]"><?php _e( '图标', 'woocommerce' ); ?></label></th>
  9. <td>
  10. <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'] ) : ''; ?>">
  11. </td>
  12. </tr>
  13. <?php
  14. }
  15. add_action( 'product_cat_edit_form_fields', 'tutorialshares_taxonomy_edit_meta_field', 10, 2 );

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

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

  1. // 保存分类数据
  2. function save_taxonomy_custom_meta( $term_id ) {
  3. if ( isset( $_POST['term_meta'] ) ) {
  4. $t_id = $term_id;
  5. $term_meta = get_option( "taxonomy_$t_id" );
  6. $cat_keys = array_keys( $_POST['term_meta'] );
  7. foreach ( $cat_keys as $key ) {
  8. if ( isset ( $_POST['term_meta'][$key] ) ) {
  9. $term_meta[$key] = $_POST['term_meta'][$key];
  10. }
  11. }
  12. // Save the option array.
  13. update_option( "taxonomy_$t_id", $term_meta );
  14. }
  15. }
  16. add_action( 'edited_product_cat', 'save_taxonomy_custom_meta', 10, 2 );
  17. add_action( 'create_product_cat', 'save_taxonomy_custom_meta', 10, 2 );

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

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

  1. $meta_field_array = get_option('taxonomy_'. $term->term_id);
  2. $meta_icon = $meta_field_array['term_icon'];

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

WordPress快速定位PHP函数所在文件位置及代码行号

2023-11-17 15:11:58

WordPress教程

纯代码给WordPress分类增加自定义TDK标题描述关键词信息

2023-11-17 15:12:04

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索