jake w
Mi intención es mostrar los cupones utilizados en un pedido, en una columna personalizada en la tabla de pedidos de WooCommerce “Mi cuenta”.
Imagen de la mesa en el sitio:
Mi intento de código:
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());
}
Que se basa en Agregar una columna personalizada con metadatos a la tabla Pedidos de mi cuenta en el código de respuesta de Woocommerce 3+.
Puedo crear la columna muy bien, pero desafortunadamente no aparecen los datos deseados. Alguien que me pueda ayudar con esto?
7uc1f3r
Está cerca de su intento de código, sin embargo, no hay una necesidad real de iterar sobre las columnas existentes. A menos que desee determinar la secuencia de la nueva columna.
Posteriormente, para la salida de los códigos de cupón, hay varias opciones disponibles, una de las cuales es, por ejemplo, usar implosionar()
Entonces obtienes:
// 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 );
Relacionado: agregue varias columnas personalizadas a la tabla de pedidos “Mi cuenta” de WooCommerce