Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

218
Visualizações
Divida la fila de descuento (cupón) en varias filas de costos deducidos en la tabla de totales de pedidos de WooCommerce

Si se usan 2 cupones de descuento, muestra la suma de 2 cupones en la tabla de totales de pedidos de Woocommerce, mientras que quiero mostrar el costo deducido de cada cupón por separado.

Por ejemplo, se insertan 2 cupones, actualmente muestra:

  • cupón: $100

Quiero cambiar esto a:

  • cupón 1 (código de cupón): $ 50

  • cupón2 (código de cupón): $ 50

Ruta desde el archivo de plantilla de WooCommerce: order-details.php

 foreach ( $order->get_order_item_totals() as $key => $total ) { ?> <tr> <th scope="row"><?php echo esc_html( $total['label'] ); ?></th> <td><?php echo ( 'payment_method' === $key ) ? esc_html( $total['value'] ) : wp_kses_post( $total['value'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></td> </tr> <?php }

¿Algún consejo sobre cómo cambiar esto?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

add_filter('woocommerce_get_order_item_totals', 'woocommerce_get_order_item_totals', 10, 3); function woocommerce_get_order_item_totals($total_rows, $order, $tax_display) { // Loop through order items "coupon" $original_dicount_value = $total_rows['discount']['value']; $breaked_dicount_value = ''; $wrapp_table_start = '<table style="width:100%">'; $i = 1; foreach ($order->get_items('coupon') as $item_id => $item) { // Get the coupon array data $data = $item->get_data(); $coupon_code = $data['code']; $coupon_amt = strip_tags(wc_price($data['discount'] + $data['discount_tax'])); $breaked_dicount_value .= "<tr> <td>coupon$i($coupon_code)</td> <td>$coupon_amt</td> </tr>"; $i++; } $wrapp_table_end = "</table>"; $total_rows['discount']['value'] = ('' !== $breaked_dicount_value ) ? $wrapp_table_start . $breaked_dicount_value . $wrapp_table_end : $original_dicount_value; return $total_rows; }
over 4 years ago · Santiago Trujillo Relatório

0

No es necesario agregar etiquetas de tabla HTML a través del gancho woocommerce_get_order_item_totals , ya que se trata de filas de tabla.

La siguiente respuesta elimina la fila de descuento predeterminada y la divide en varias filas con los detalles deseados.

Funciones utilizadas en esta respuesta:

  • WC_Abstract_Order::get_coupon_codes()
  • obtener_descuento()
  • obtener_código()

Entonces obtienes:

 function filter_woocommerce_get_order_item_totals( $total_rows, $order, $tax_display ) { // Exit if there is no coupons applied if ( sizeof ( $order->get_coupon_codes() ) == 0 ) return $total_rows; // Initializing $new_rows = []; // Loop through order total lines foreach ( $total_rows as $total_key => $total_row ) { // Store current rows, except discount if ( $total_key != 'discount' ) { // Store $new_rows[$total_key] = $total_row; } else { // For each coupon foreach ( $order->get_items('coupon') as $coupon ) { // New rows $new_rows[$coupon->get_code()] = array( 'label' => __( 'Coupon: ', 'woocommerce' ) . $coupon->get_code(), 'value' => wc_price( $coupon->get_discount() ), ); } } } // Overwrite $total_rows = $new_rows; return $total_rows; } add_filter( 'woocommerce_get_order_item_totals', 'filter_woocommerce_get_order_item_totals', 10, 3 );

Resultado:

resultado


Relacionado: agregue nombres de cupones y porcentajes a WooCommerce, vea los detalles del pedido y las notificaciones por correo electrónico

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda