我的25个WordPress最佳WooCommerce代码片段

  1. 1个. 当前阅读: 我的25个WordPress最佳WooCommerce代码片段
  2. 2. 我的WordPress第25部分最佳WooCommerce代码片段

时光飞逝……自从我作为WooCommerce全职支持技术员开始为WooThemes工作以来已有6个月了。在这6个月中,我在WooCommerce上学到了很多东西,并且编写了很多代码(阅读 很多!)的WooCommerce相关摘要。实际上,WooCommerce是一个非常强大的工具,并且易于扩展。它具有许多可用于几乎所有事物的钩子,这就是WooCommerce如此出色的原因。以下是我在过去几个月中撰写或改编的摘录清单;所有这些代码段都必须粘贴到主题文件夹内的functions.php文件中:


1 –将付款类型添加到WooCommerce管理员电子邮件

add_action('woocommerce_email_after_order_table','add_payment_method_to_admin_new_order',15,2);

函数add_payment_method_to_admin_new_order($ order,$ is_admin_email){
如果($ is_admin_email){
回声

付款方法: '。 $ order-> payment_method_title。 '

'; } }

2 –每页/每行加售产品

remove_action('woocommerce_after_single_product_summary','woocommerce_upsell_display',15);
add_action('woocommerce_after_single_product_summary','woocommerce_output_upsells',15);

如果(!function_exists('woocommerce_output_upsells')){
函数woocommerce_output_upsells(){
woocommerce_upsell_display(3,3); //在3行中显示3个产品
}
}

3 –从商店页面删除产品类别

add_action('pre_get_posts','custom_pre_get_posts_query');

函数custom_pre_get_posts_query($ q){

如果(!$ q-> is_main_query())返回;
如果(!$ q-> is_post_type_archive())返回;

如果(!is_admin()&& is_shop()&&!is_user_logged_in()){

$ q-> set('tax_query',array(array(
'分类法'=>'product_cat',
'字段'=>'子弹',
'terms'=> array('color','flavor','spices','vanilla'),//不要在商店页面上显示这些类别的产品
'运算符'=>'禁止输入'
)));

}

remove_action('pre_get_posts','custom_pre_get_posts_query');

}

4 –快速翻译任何字符串

add_filter('gettext','translate_text');
add_filter('ngettext','translate_text');

函数translate_text($ translated){
$ translated = str_ireplace('选择和选择','选择',$ translated);
返回$ translated;
}

5 –从WooCommerce类别小部件中排除类别

add_filter('woocommerce_product_categories_widget_args','woo_product_cat_widget_args');

函数woo_product_cat_widget_args($ cat_args){

$ cat_args ['exclude'] = array('16');

返回$ cat_args;
}

6 –将自定义字段添加到产品变体中

//显示字段
add_action('woocommerce_product_after_variable_attributes','variable_fields',10,2);
// JS为新变体添加字段
add_action('woocommerce_product_after_variable_attributes_js','variable_fields_js');
//保存变化字段
add_action('woocommerce_process_product_meta_variable','variable_fields_process',10,1);

函数variable_fields($ loop,$ variation_data){?>


7 –将“缺货”替换为“已售出”

add_filter('woocommerce_get_availability','availability_filter_func');

函数availability_filter_func($ availability)
{
$ availability ['availability'] = str_ireplace('Out of stock','Sold',$ availability ['availability']);
返回$ availability;
}

8 –显示“购物车中已有产品”,而不是“添加到购物车”按钮

/ **
*更改单个产品页面上的添加到购物车文本
* /
add_filter('woocommerce_product_single_add_to_cart_text','woo_custom_cart_button_text');

函数woo_custom_cart_button_text(){

全球$ woocommerce;

foreach($ woocommerce-> cart-> get_cart()as $ cart_item_key => $ values){
$ _product = $ values ['data'];

if(get_the_ID()== $ _product-> id){
返回__('已经在购物车中-是否再次添加?','woocommerce');
}
}

返回__('添加到购物车','woocommerce');
}

/ **
*更改产品档案中的添加到购物车文本
* /
add_filter('add_to_cart_text','woo_archive_custom_cart_button_text');

函数woo_archive_custom_cart_button_text(){

全球$ woocommerce;

foreach($ woocommerce-> cart-> get_cart()as $ cart_item_key => $ values){
$ _product = $ values ['data'];

if(get_the_ID()== $ _product-> id){
返回__('Aready in cart','woocommerce');
}
}

返回__('添加到购物车','woocommerce');
}

9 –隐藏产品归类视图

add_filter('woocommerce_subcategory_count_html','woo_remove_category_products_count');

函数woo_remove_category_products_count(){
返回;
}

10 –必须填写帐户结帐字段

add_filter('woocommerce_checkout_fields','woo_filter_account_checkout_fields');

函数woo_filter_account_checkout_fields($ fields){
$ fields ['account'] ['account_username'] ['required'] = true;
$ fields ['account'] ['account_password'] ['required'] = true;
$ fields ['account'] ['account_password-2'] ['required'] = true;

返回$ fields;
}

11 –重命名产品标签

add_filter('woocommerce_product_tabs','woo_rename_tab',98);
函数woo_rename_tab($ tabs){

$ tabs ['description'] ['title'] ='更多信息';

返回$ tabs;
}

12 –列出WooCommerce产品类别

$ args =数组(
'数字'=> $数字,
'orderby'=> $ orderby,
'订单'=> $ order,
'hide_empty'=> $ hide_empty,
'include'=> $ ids
);

$ product_categories = get_terms('product_cat',$ args);

$ count = count($ product_categories);
如果($ count> 0){
回声““;
}

13 –替换商店页面标题

add_filter('woocommerce_page_title','woo_shop_page_title');

函数woo_shop_page_title($ page_title){

if('商店'== $ page_title){
返回“我的新标题”;
}
}

14 –更改小部件标题

/ *
*更改小部件标题
* /
add_filter('widget_title','woo_widget_title',10,3);

函数woo_widget_title($ title,$ instance,$ id_base){

if('onsale'== $ id_base){
返回“我的新标题”;
}
}

15 –删除WooCommerce默认设置

add_filter('woocommerce_catalog_settings','woo_remove_catalog_options');

函数woo_remove_catalog_options($ catalog){

unset($ catalog [23]); //修剪零(否)
unset($ catalog [22]); // 2位小数
unset($ catalog [21]); //十进制sep(。)
unset($ catalog [20]); //千个Sep(,)
unset($ catalog [19]); //货币位置(左)
unset($ catalog [18]); //货币位置(左)
unset($ catalog [5]); // ajax添加到购物车(否)

返回$ catalog;
}

16 –更改“发件人”电子邮件地址

函数woo_custom_wp_mail_from(){
全球$ woocommerce;
返回html_entity_decode('[email protected]');
}
add_filter('wp_mail_from','woo_custom_wp_mail_from',99);

17 – WooCommerce电子邮件中的姓名解码

函数woo_custom_wp_mail_from_name(){
全球$ woocommerce;
返回html_entity_decode(get_option('woocommerce_email_from_name'));
}
add_filter('wp_mail_from_name','woo_custom_wp_mail_from_name',99);

函数woo_custom_wp_mail_from(){
全球$ woocommerce;
返回html_entity_decode(get_option('woocommerce_email_from'));
}
add_filter('wp_mail_from_name','woo_custom_wp_mail_from_name',99);

18 –退货特色产品ID

函数woo_get_featured_product_ids(){
//从缓存加载
$ featured_product_ids = get_transient('wc_featured_products');

//找到有效的缓存
如果(false!== $ featured_product_ids)
返回$ featured_product_ids;

$ featured = get_posts(array(
'post_type'=>数组('product','product_variation'),
'posts_per_page'=> -1,
'post_status'=>'发布',
'meta_query'=>数组(
数组(
'密钥'=>'_visibility',
'值'=>数组('目录','可见'),
'比较'=>'IN'
),
数组(
'密钥'=>'_featured',
'值'=>'是'
)
),
'字段'=>'id =>父母'
));

$ product_ids = array_keys($ featured);
$ parent_ids = array_values($ featured);
$ featured_product_ids = array_unique(array_merge($ product_ids,$ parent_ids));

set_transient('wc_featured_products',$ featured_product_ids);

返回$ featured_product_ids;
}

19-将自定义字段添加到编辑地址页面

//添加字段以编辑地址页
函数woo_add_edit_address_fields($ fields){

$ new_fields =数组(
'date_of_birth'=>数组(
'标签'=> __('出生日期','woocommerce'),
'必需'=>否,
'class'=> array('form-row'),
),
);

$ fields = array_merge($ fields,$ new_fields);

返回$ fields;

}

add_filter('woocommerce_default_address_fields','woo_add_edit_address_fields');

20 –显示待售产品目录简码

函数woocommerce_sale_products($ atts){

全球$ woocommerce_loop;

提取(shortcode_atts(array(
'per_page'=>'12',
'列'=>'4',
'orderby'=>'日期',
'order'=>'desc'
),$ atts));

$ woocommerce_loop ['columns'] = $ columns;

$ args =数组(
'post_type'=>'产品',
'post_status'=>'发布',
'ignore_sticky_posts'=> 1,
'posts_per_page'=> $ per_page,
'orderby'=> $ orderby,
'订单'=> $ order,
'meta_query'=>数组(
数组(
'密钥'=>'_visibility',
'值'=>数组('目录','可见'),
'比较'=>'IN'
),
数组(
'密钥'=>'_sale_price',
'值'=> 0,
'比较'=>'>',
'类型'=>'数字'
)
)
);
query_posts($ args);
ob_start();
woocommerce_get_template_part('loop','shop');
wp_reset_query();

返回ob_get_clean();
}

add_shortcode('sale_products','woocommerce_sale_products');

21 –有待售产品

函数woo_have_onsale_products(){

全球$ woocommerce;

//获得特价商品
$ product_ids_on_sale = array_filter(woocommerce_get_product_ids_on_sale());

if(!empty($ product_ids_on_sale)){
返回true;
}其他{
返回false;
}

}

//示例:
if(woo_have_onsale_products()){
回显“有待售产品”;
}其他{
回显“无销售产品”;
}

22 –设置最小订购量

add_action('woocommerce_checkout_process','wc_minimum_order_amount');
函数wc_minimum_order_amount(){
全球$ woocommerce;
$最小= 50;
如果($ woocommerce-> cart-> get_cart_total(); < $minimum ) {
$woocommerce->add_error(sprintf('您必须下单时必须有最少%s的订单。',$ minimum));
}
}

23 –在商店页面上按价格,日期或标题订购

add_filter('woocommerce_default_catalog_orderby','custom_default_catalog_orderby');

函数custom_default_catalog_orderby(){
归期'; //也可以使用标题和价格
}

24 –将添加到购物车按钮重定向到结帐页面

add_filter('add_to_cart_redirect','redirect_to_checkout');

函数redirect_to_checkout(){
全球$ woocommerce;
$ checkout_url = $ woocommerce->购物车-> get_checkout_url();
返回$ checkout_url;
}

25 –完成订单后添加电子邮件收件人

函数woo_extra_email_recipient($ recipient,$ object){
$ recipient = $ recipient。 ',[email protected]';
返回$ recipient;
}
add_filter('woocommerce_email_recipient_customer_completed_order','woo_extra_email_recipient',10,2);

而且...就是这样!我希望您发现这些摘要有用,它们都经过了测试并且都可以正常工作,但是如果您遇到任何麻烦,请告诉我评论部分。玩得开心! ��

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map