第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在 WooCommerce 訂單頁面上顯示所有可用的運(yùn)輸方式和費(fèi)用

在 WooCommerce 訂單頁面上顯示所有可用的運(yùn)輸方式和費(fèi)用

PHP
阿晨1998 2023-07-21 18:32:42
上一個(gè)/相關(guān)問題:在 Woocommerce 的管理編輯訂單頁面上顯示每個(gè)特定訂單的所有可用送貨方式目前在我基于 WooCommerce 的網(wǎng)站中,我想在訂單編輯頁面上顯示可用的運(yùn)輸方式和價(jià)格。它沒有按照我想要的方式顯示數(shù)據(jù)。例如,到目前為止我的代碼的輸出結(jié)果是:方法1方法2方法3價(jià)格1價(jià)格2價(jià)格3或者,我希望它顯示如下:方法 1 - $Price 1方法 2 - $Price 2方法 3 - $Price 3我理解為什么它以這種方式顯示,但我很好奇如何同時(shí)迭代循環(huán)并格式化它們,而不是一個(gè)接一個(gè)地循環(huán)。到目前為止,這是我的代碼:add_action( 'woocommerce_admin_order_data_after_shipping_address', 'action_woocommerce_admin_order_data_after_shipping_address', 10, 1 );function action_woocommerce_admin_order_data_after_shipping_address( $order ){? ? // Get meta? ? $rate_labels = $order->get_meta( '_available_shipping_methods' );? ? $rate_costs = $order->get_meta( '_available_shipping_method_cost' );? ??? ? $methods = array ( $rate_labels, $rate_costs );? ??? ? // True? ? if ( $rate_labels ) {? ? ? ? // Loop? ? ? ? echo '<p><strong>Shipping Methods: </strong>';? ? ? ? foreach( $rate_labels as $rate_label ) {? ? ? ? ? ? // Output? ? ? ? ? ? echo '<p>' . $rate_label . '</p>';? ? ? ? }? ? ? ? foreach( $rate_costs as $rate_cost ) {? ? ? ? ? ? // Output? ? ? ? ? ? echo '<p> $' . $rate_cost . '</p>';? ? ? ? }? ? }}
查看完整描述

2 回答

?
富國(guó)滬深

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊

以下略有不同的代碼將顯示標(biāo)簽和所有可用運(yùn)輸方式的成本(在一個(gè)數(shù)組 | 一個(gè) foreach 循環(huán)中):


add_action( 'woocommerce_checkout_create_order', 'action_wc_checkout_create_order' );

function action_wc_checkout_create_order( $order ) {

    $shipping_data = array(); // Initializing


    // Get shipping packages keys from cart

    $packages_keys = (array) array_keys(WC()->cart->get_shipping_packages());


    // Loop through shipping packages keys (when cart is split into many shipping packages)

    foreach( $packages_keys as $key ){

        // Get available shipping rates from WC_Session

        $shipping_rates = WC()->session->get('shipping_for_package_'.$key)['rates'];


        // Loop through shipping rates

        foreach( $shipping_rates as $rate_key => $rate ){

            // Set all related shipping rate data in the array

            $shipping_data[] = array(

                'id'          => $rate_key,

                'method_id'   => $rate->method_id,

                'instance_id' => (int) $rate->instance_id,

                'label'       => $rate->label,

                'cost'        => (float) $rate->cost,

                'taxes'       => (array) $rate->taxes,

                'package_key' => (int) $key,

            );

        }

    }


    // Save shipping data as order custom field

    if( ! empty($shipping_data) ) {

        $order->update_meta_data( '_shipping_data', $shipping_data );

    }

}


add_action( 'woocommerce_admin_order_data_after_shipping_address', 'available_shipping_rates_after_shipping_address' );

function available_shipping_rates_after_shipping_address( $order ) {

    // Get shipping rates custom meta data

    $shipping_data = $order->get_meta( '_shipping_data' );


    if ( ! empty($shipping_data) ) {

        echo '<p><strong>Shipping Methods: </strong><br>';


        // Loop through shipping rates data

        foreach( $shipping_data as $rate ) {

            // Calculate cost with taxes

            $rate_cost = $rate['cost'] + array_sum($rate['taxes']);


            // Output

            echo $rate['label'] . ( $rate_cost > 0 ? ': '. wc_price($rate_cost) : '' ) . '<br>';

        }


        echo '</p>';

    }

}

代碼位于活動(dòng)子主題(或活動(dòng)主題)的functions.php 文件中。經(jīng)過測(cè)試并有效。


查看完整回答
反對(duì) 回復(fù) 2023-07-21
?
白板的微信

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊

如果有人碰巧有和我一樣的問題,我是這樣做的:


function action_woocommerce_admin_order_data_after_shipping_address( $order ) {

    // Get meta

    $rate_labels = $order->get_meta( '_available_shipping_methods' );

    $rate_costs = $order->get_meta( '_available_shipping_method_cost' );

    

    $methods = array ( $rate_labels, $rate_costs );

    

    // True

    if ( $rate_labels ) {

        // Loop

        echo '<p><strong>Shipping Methods: </strong>';

        foreach(array_combine($rate_labels, $rate_costs) as $rate_label => $rate_cost) {

             echo '<p>' . $rate_label . ' - $' . $rate_cost . '</p>';

        }

    }

    

}


查看完整回答
反對(duì) 回復(fù) 2023-07-21
  • 2 回答
  • 0 關(guān)注
  • 188 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)