[英]Add fee to Woocommerce Shipping Class without the use of zones or flat rate
我很難找到我需要的東西,所以我求助於這里的大師!
我正在為我們簡單的非營利漫畫書店使用 Woocommerce 和一個名為 Table Rate Shipping Plus(由 mangohour 提供)的插件。 我們在瑞典使用基於重量的運輸作為標准,因此統一費率系統不是我們商店的選項。
我創建了一個“龐大”的運輸類別,我需要它在選擇該類別的產品時自動向購物車添加少量費用(僅一次,無需堆疊),而無需使用 woocommerce 的運輸區域和統一費率系統.
我似乎無法在任何地方找到任何可以執行這種簡單操作的東西,而且我對 php 的了解不夠,無法自己為 functions.php 編寫函數或過濾器。
有人可以指出我正確的方向嗎? 我一直盯着自己瞎...
如果我給你這段代碼放在functions.php中,你知道如何自定義嗎? 或者我應該把它變成一個簡單的插件給你?
這是它在我的本地 WP 測試環境中工作的視覺效果。
安裝到functions.php
向下滾動到實際代碼開始的位置,然后將整個塊復制並粘貼到主題文件夾 functions.php 的最底部。 只是一個簡單的復制和粘貼。
使用說明。
步驟 1. 在 WooComerce 設置 > 運輸 > 運輸類別中創建您的運輸類別。 例如,在我的測試站點上,我在 wooComerce 設置中創建了“bulky”和“light”運輸類。 記住您為第 2 步設置的 slug。
第 2 步。在EX1
我將 WooCommerce 運輸類的區分大小寫的 slug 放在 ''. 在EX2
我將您希望在結賬時顯示的費用描述放在“”中。 最后,在EX3
您只需輸入費用的數值,這不在 '' 內。
//Example:
$shippingClasses['EX1'] = ['description' => 'EX2', 'fee' => EX3];
//How it will look:
$shippingClasses['bulky'] = ['description' => 'Bulky Fee', 'fee' => 7];
$shippingClasses['light'] = ['description' => 'Light Fee', 'fee' => 4];
就是這樣! 這就是你所要做的。
代碼
function fees_fees_fees() {
$shippingClasses['bulky'] = ['description' => 'Bulky Fee', 'fee' => 5];
$shippingClasses['light'] = ['description' => 'Light Fee', 'fee' => 7];
foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
$shipping_class = get_the_terms( $values['product_id'], 'product_shipping_class' );
foreach($shippingClasses as $key => $val) {
if ( isset( $shipping_class[0]->slug ) && in_array( $shipping_class[0]->slug, [$key] ) ) {
WC()->cart->add_fee( __($val['description'], 'woocommerce'), $val['fee'] ); }
}
}
}
add_action( 'woocommerce_cart_calculate_fees', 'fees_fees_fees' );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.