WooCommerce购物车中只有虚拟商品时,移除不必要的结账字段
文 / @UTHEME
关于优化WooCommerce结账页面
嗨,亲爱的读者!小本本今天要分享一个优化WooCommerce结账页面的技巧,帮助你提高结账效率。
移除收货地址字段
如果我们使用WooCommerce发布了一个虚拟产品——如付费下载资源,用户购买后,可以直接下载,不需要发送商品或账单给顾客,这个时候,结账页面的收件地址字段明显是多余的。如果结账时,顾客的订单中只有虚拟商品时,我们可以移除收货地址字段,减少要求用户填写的内容,以提高结账效率。实现这个需求的关键是判断购物车中只有虚拟商品。我们可以遍历购物车中的商品来进行判断,只要有一个商品不是虚拟商品,移除收货地址字段这个条件就不成立,具体参考下面的代码。
add_filter('woocommerce_checkout_fields', function($fields)
{
$only_virtual = true;
foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {
// Check if there are non-virtual products
if (!$cart_item['data']->is_virtual()) {
$only_virtual = false;
}
}
if ($only_virtual) {
unset($fields['billing']['billing_first_name']);
unset($fields['billing']['billing_last_name']);
unset($fields['billing']['billing_email']);
unset($fields['billing']['billing_company']);
unset($fields['billing']['billing_address_1']);
unset($fields['billing']['billing_address_2']);
unset($fields['billing']['billing_city']);
unset($fields['billing']['billing_postcode']);
unset($fields['billing']['billing_country']);
unset($fields['billing']['billing_state']);
unset($fields['billing']['billing_phone']);
add_filter('woocommerce_enable_order_notes_field', '__return_false');
}
return $fields;
});
以上就是小本本的技巧分享了,希望对你有所帮助!

相关文章
-
IDC/ISP办理许可证的基本条件(附:IDC和ISP许可证申请流程) 2023-06-07 08:00:01
-
利用tinymce.activeEditor获取到 WordPress可视化编辑器中的值(附:tinymce.activeEditor常见其他用法) 2023-06-06 08:00:02
-
WordPress是什么框架吗?WordPress是用什么写的? 2023-06-06 08:00:02
-
WordPress哪个版本稳定好用(附:如何查看当前WordPress版本) 2023-06-06 08:00:02
-
Automattic 发布 wp-now:由 WordPress Playground 提供支持的本地开发环境 2023-06-05 08:00:02
-
PHP预定义常量都有哪些(含常见PHP魔术常量) 2023-06-04 08:00:01
-
php的 require 和include 有什么区别 2023-06-04 08:00:01
-
UGPT插件:国内首个永久免费WordPress ChatGPT插件 2023-06-04 08:00:01
-
wordpress seo哪个插件好用 – WordPress SEO by Yoast 2023-06-03 08:00:02
-
WordPress古腾堡编辑器模块开发教程 2023-06-03 08:00:02