WooCommerce创建自定义产品类型实现各种电子商务需求
文 / @UTHEME
WooCommerce开发:如何添加自定义产品类型
作为一款WordPress电商插件,WooCommerce默认支持单个产品、成组产品、外接/关联产品、可变产品这几个产品类型。如果这几种类型无法满足我们的需求,我们还可以添加自定义产品类型。比如我们可以添加一个名称为「Couponproduct」的自定义产品来实现用户购买优惠券的功能,用户购买了个类型的产品后,会自动发放优惠券给用户。
注册新产品类型类
首先,我们需要需要创建一个新的产品类型类,并且挂载到init
钩子上,这样WooCommerce就知道我们创建了一个名为「coupon」的产品类型。
add_action('init',function()
{
class WC_Product_Coupon extends WC_Product
{
public function __construct($product)
{
$this->product_type='coupon';
parent::__construct($product);
}
}
});
添加新产品类型到产品类型下拉选择中
仅仅创建了产品类型还不够,我们还需要把这个产品类型添加到创建产品时的下拉选单中,这样我们就能够添加这个产品类型的产品了。
add_filter('product_type_selector',function($types)
{
$types['coupon']=__('Couponproduct','coupon_product');
return $types;
});
添加新产品类型选项卡
新的产品类型肯定会有一些和标准产品类型不一样的自定义数据,我们可以添加选项卡到产品属性元数据盒子中,以便可以为这个产品类型添加自定义数据。
add_filter('woocommerce_product_data_tabs',function($tabs)
{
$tabs['coupon']=[
'label'=>__('CouponProduct','coupon_product'),
'target'=>'coupon_product_options',
'class'=>'show_if_coupon_product',
];
return $tabs;
});
添加字段到选项卡中
有了选项卡,我们就可以添加自定义字段到这个选项卡中了。如下,我们添加了一个名为coupon_product_info
的文本字段到自定义产品类型选项卡中。
add_action('woocommerce_product_data_panels',function()
{
?>
<div id='coupon_product_options' class='panel woocommerce_options_panel'></div>
<div class='options_group'>
<?php
woocommerce_wp_text_input(
[
'id'=>'coupon_product_info',
'label'=>__('CouponProductSpec','coupon_product'),
'placeholder'=>'',
'desc_tip'=>'true',
'description'=>__('EnterCouponproductInfo.','coupon_product'),
'type'=>'text',
]
);
?>
</div>
<?php
});
保存自定义字段值
然后,在保存产品时,我们需要同时保存上面添加的自定义字段的数据。
add_action('woocommerce_process_product_meta_coupon_product',function($post_id)
{
$coupon_product_info=$_POST['coupon_product_info'];
if(!empty($coupon_product_info)){
update_post_meta($post_id,'coupon_product_info',esc_attr($coupon_product_info));
}
});
根据文章类型显示前端数据
保存了数据之后,我们就可以在前端显示这个产品类型的数据了,如下,我们创建了一个coupon的模版来显示该产品类型的产品信息。
add_action('woocommerce_single_product_summary',function()
{
global $product;
if('coupon'==$product->get_type()){
$template_path=plugin_dir_path(__FILE__).'templates/';
//Loadthetemplate
wc_get_template('single-product/add-to-cart/coupon.php','',
'',
trailingslashit($template_path));
}
},60);
以上,是WooCommerce开发的时候添加自定义产品类型的基本流程,添加了之后,我们还需要根据我们的业务逻辑进行一些处理,每个业务流程都不一样,在这里就不详细举例子了,有需要的朋友可以通过下方的联系方式和我们沟通。

相关文章
-
WordPress网站的安全插件:wordfence 2023-09-14 09:25:18
-
创建Vue组件详细教程 2023-09-10 00:23:17
-
WordPress 6.3 支持在手动更新插件和主题失败后回滚旧版本 2023-08-28 16:58:45
-
WordPress 6.3版本(2023年8月)性能提升了哪些? 2023-08-28 16:56:02
-
Astra 主题团队推出人工智能驱动的 WordPress 网站创建平台 – ZIPWP 2023-08-28 16:49:54
-
WordPress 宣布将为用户提供 100 年域名托管服务 2023-08-28 16:45:27
-
PHP判断if else 和 switch case的区别盘点 2023-07-29 15:11:11
-
详解WordPress独立站SEM中的OCPC方法(含百度推广OCPC与谷歌OCPC) 2023-07-19 08:01:30
-
WordPress的古腾堡全站编辑器site-editor.php介绍(附:site-editor.php启用代码) 2023-07-16 08:01:57
-
WordPress的Customize Partial功能最全介绍(含:demo代码) 2023-07-16 00:21:56