Отображение использованных купонов в пользовательском столбце в таблице заказов WooCommerce «Мой аккаунт»

Я намерен отображать купоны, используемые в заказе, в пользовательском столбце в таблице заказов WooCommerce «Моя учетная запись».


Изображение стола на сайте:

Моя попытка кода:

add_filter( 'woocommerce_account_orders_columns', 
'add_coupon_codes_column');
    function add_coupon_codes_column( $columns ){
        $new_columns = [
        "order-number" => $columns["order-number"],
        // ...
        "coupon-codes" => __( 'Code', '' ),
        // ...
        "order-actions" => $columns["order-actions"]
    ];
    return $new_columns;
}

add_action( 'woocommerce_my_account_my_orders_column_coupon_codes', 
'add_coupon_codes_content' );
    function add_coupon_codes_content($order) {
    echo esc_html($order->get_coupon_codes());
}

Который основан на Добавьте настраиваемый столбец с метаданными в таблицу заказов моей учетной записи в коде ответа Woocommerce 3+.


Я могу создать столбец просто отлично, но, к сожалению, нужные данные не появляются. Кто-то, кто может помочь мне с этим?

Как убрать количество товаров в категории WooCommerce
Как убрать количество товаров в категории WooCommerce
По умолчанию WooCommerce показывает количество товаров рядом с категорией, как показано ниже.
4
0
88
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы близки с вашей попыткой кода, однако нет реальной необходимости перебирать существующие столбцы. Если только вы не хотите определять последовательность из нового столбца.

Впоследствии для вывода кодов купонов доступно несколько вариантов, один из которых, например, с использованием implode()

Итак, вы получаете:

// Add new column(s) to the "My Orders" table in the account.
function filter_woocommerce_account_orders_columns( $columns ) {
    $columns['coupon-codes'] = __( 'Coupons', 'woocommerce' );

    return $columns;
}
add_filter( 'woocommerce_account_orders_columns', 'filter_woocommerce_account_orders_columns', 10, 1 );

// Adds data to the custom column in "My Account > Orders"
function action_woocommerce_my_account_my_orders_column_coupon_codes( $order ) {
    // Get codes
    $coupon_codes = $order->get_coupon_codes();
        
    if ( ! empty( $coupon_codes ) ) {
        echo implode( ', ', $coupon_codes );
    }
}
add_action( 'woocommerce_my_account_my_orders_column_coupon-codes', 'action_woocommerce_my_account_my_orders_column_coupon_codes', 10, 1 );

Связано: Добавьте несколько настраиваемых столбцов в таблицу заказов WooCommerce «Мой аккаунт»

Другие вопросы по теме