繼續分享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號
?
?
?
?
微信聯系