簡體   English   中英

在 WooCommerce 我的賬戶訂單自定義欄目中添加“支付訂單”按鈕

[英]Add “Pay for order” Button in WooCommerce My account Orders Custom Column

根據 LoicTheAztec 為在 WooCommerce 我的帳戶查看訂單中添加支付訂單按鈕的答案代碼,我添加了其他代碼,試圖讓此按鈕直接顯示在“查看訂單”端點上的自定義列中.

列在那里,但按鈕不在。 我也嘗試在 function 中將$order$order_id切換,但沒有成功。

這是我正在使用的代碼:

add_filter( 'woocommerce_my_account_my_orders_columns', 'add_payment_column_to_myaccount', 10, 1 );
function add_payment_column_to_myaccount( $columns ) {

    $new_columns = [];

    foreach ($columns as $key => $name){

        $new_columns[$key] = $name;

        if ('order-actions' === $key){

            $new_columns['pay-order'] = __('Payment', 'woocommerce');
        }
    }

    return $new_columns;
}

add_action( 'woocommerce_my_account_my_orders_column_order-items', 'add_pay_for_order_to_payment_column_myaccount', 10, 1);
function add_pay_for_order_to_payment_column_myaccount( $order ) {

    $order = wc_get_order( $order_id );

    if ( $order->get_status() == "pending" || $order->get_status() == "on-hold" ) {

        printf('<a class="woocommerce-button button pay" href="%s/order-pay/%s/?pay_for_order=true&key=%s">%s</a>',

        wc_get_checkout_url(), $order_id, $order->get_order_key(), __("Pay for this order", "woocommerce")
    );
    }
}

您錯過了第二個 function 的復合掛鈎中的pay-order

woocommerce_my_account_my_orders_column_{$column_key}

其中$column_key需要替換為pay-order (但不是order-items )

還有一些其他的錯誤。 嘗試以下操作:

add_filter( 'woocommerce_my_account_my_orders_columns', 'add_payment_column_to_myaccount' );
function add_payment_column_to_myaccount( $columns ) {
    $new_columns = [];

    foreach ($columns as $key => $name){
        $new_columns[$key] = $name;

        if ('order-actions' === $key){
            $new_columns['pay-order'] = __('Payment', 'woocommerce');
        }
    }
    return $new_columns;
}

add_action( 'woocommerce_my_account_my_orders_column_pay-order', 'add_pay_for_order_to_payment_column_myaccount' );
function add_pay_for_order_to_payment_column_myaccount( $order ) {
    if( in_array( $order->get_status(), array( 'pending', 'on-hold' ) ) ) {
        printf( '<a class="woocommerce-button button pay" href="%s/order-pay/%s/?pay_for_order=true&key=%s">%s</a>',
            wc_get_checkout_url(), $order->get_id(), $order->get_order_key(), __("Pay for this order", "woocommerce")
        );
    }
}

代碼進入活動子主題(或活動主題)的functions.php文件。 測試和工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM