继续分享wordpress建站教程。一般我们使用woocommerce制作的商城网站都是实物商品,但有时可能也会发布一些虚拟产品,比如教程资料等,用户付款后可以直接获得下载地址,这种情况下用户在支付时其实是不必填写收获信息的,所以我们可以想办法让woocommerce做一个判断,当购物车或账单中只有虚拟产品时移除收货相关的地段,这样可以简化用户的购物流程,提高结账效率。
具体方法就是下面这段代码,把它添加到当前wordpress建站主题的functions.php文件中即可,或者是添加到code snippet等代码片段插件中。
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;
});
上面的代码会检查用户财物车中的产品,如果只有虚拟产品就会删除收货字段,结账时不用填写,直接付款就行;如果购物车中有实用产品,那就需要填写。
© Copyright 2024. 悦然网络工作室/悦然wordpress建站 专注中小企业wordpress建站 All Rights Reserved.网站地图
本站图片来源为Pexels、Pixabay、Freepik、Unsplash等图片库的免费许可,CC0协议;还有部分为自己手绘,版权碰瓷请自重!法律服务:law@yueranseo.com 蜀ICP备20016391号-1 川公网安备 51011502000367号
微信联系