• Resolved dinigi

    (@dinigi)


    opa tudo bem? depois de problemas devido as mudancas no sistema dos correios, deixamos de usar o proprio woocommerce shipment tracking plugin para informar os códigos de rastreamento aos nosso clientes e come?amos a usar este plugin para enviar os códigos de rastreamento. esta funcionando tudo certo.

    so fiquei com uma duvida: gostaria de saber se é possível mostrar o código de rastreamento no orders overview do woocommerce, tipo assim: https://imgur.com/a/4uRYu

    eu usei o seguinte code para reinstalar a coluna dos itens que foi eliminada com woocommerce 3.0, n?o sei se da pra fazer de uma forma parecida?:

    add_filter('manage_edit-shop_order_columns', 'wc_custom_purchased_column');
    
    function wc_custom_purchased_column($columns)
    {
        $new_array = array();
        foreach ($columns as $key => $title) {
            if ($key == 'billing_address') {
    
                $new_array['order_items'] = __('Purchased', 'woocommerce');
            }
    
            $new_array[$key] = $title;
        }
        return $new_array;
    }
    
    add_action('manage_shop_order_posts_custom_column', 'wc_shop_custom_column', 10, 2);
    
    function wc_shop_custom_column($column)
    {
        global $post, $woocommerce, $the_order;
        switch ($column) {
    
            case 'order_items':
                $terms = $the_order->get_items();
    
    			echo '<a href="#" class="show_order_items">' . apply_filters( 'woocommerce_admin_order_item_count', sprintf( _n( '%d item', '%d items', $the_order->get_item_count(), 'woocommerce' ), $the_order->get_item_count() ), $the_order ) . '</a>';
    
    				if ( sizeof( $the_order->get_items() ) > 0 ) {
    
    					echo '<table class="order_items" cellspacing="0">';
    
    					foreach ( $the_order->get_items() as $item ) {
    						$product        = apply_filters( 'woocommerce_order_item_product', $item->get_product(), $item );
    						$item_meta      = new WC_Order_Item_Meta( $item, $product );
    						$item_meta_html = $item_meta->display( true, true );
    						?>
    						<tr class="<?php echo apply_filters( 'woocommerce_admin_order_item_class', '', $item, $the_order ); ?>">
    							<td class="qty"><?php echo esc_html( $item->get_quantity() ); ?></td>
    							<td class="name">
    								<?php  if ( $product ) : ?>
    									<?php echo ( wc_product_sku_enabled() && $product->get_sku() ) ? $product->get_sku() . ' - ' : ''; ?><a href="<?php echo get_edit_post_link( $product->get_id() ); ?>"><?php echo apply_filters( 'woocommerce_order_item_name', $item->get_name(), $item, false ); ?></a>
    								<?php else : ?>
    									<?php echo apply_filters( 'woocommerce_order_item_name', $item->get_name(), $item, false ); ?>
    								<?php endif; ?>
    								<?php if ( ! empty( $item_meta_html ) ) : ?>
    									<?php echo wc_help_tip( $item_meta_html ); ?>
    								<?php endif; ?>
    							</td>
    						</tr>
    						<?php
    					}
    					echo '</table>';
    				} else echo '&ndash;';
    			break;
    		}
    }
    • This topic was modified 7 years, 6 months ago by dinigi.
Viewing 3 replies - 1 through 3 (of 3 total)
  • Plugin Author Claudio Sanches

    (@claudiosanches)

    Sim, é possível, tudo é possível.

    No caso pode usar a fun??o wc_correios_get_tracking_codes( $order ) para pegar os códigos do pedido.

    Aqui um EXEMPLO de código:

    
    add_filter( 'manage_edit-shop_order_columns', function( $columns ) {
    	$columns['correios_tracking'] = 'Código de rastreamento';
    
    	return $columns;
    });
    
    add_action( 'manage_shop_order_posts_custom_column', function( $column, $post_id ) {
    	global $the_order;
    
    	if ( 'correios_tracking' === $column ) {
    		if ( ! is_object( $the_order ) ) {
    			$the_order = wc_get_order( $post_id );
    		}
    
    		$codes = wc_correios_get_tracking_codes( $the_order );
    
    		if ( $codes ) {
    			echo '<ul>';
    			foreach ( $codes as $code ) {
    				printf( '<li>%s</li>', $code );
    			}
    			echo '</ul>';
    		}
    	}
    }, 10, 2 );
    

    Note que isso vai além do escopo do suporte proposto por este plugin.
    Estou postando este código no espírito de tentar ajudar você e outras pessoas, entretanto me ausento de qualquer responsabilidade por este código, se n?o funcionar ou causar qualquer problema, eu n?o vou responder por ele.

    Boa sorte.

    Thread Starter dinigi

    (@dinigi)

    Opa Claudio, eu vi que voce incluiu a fun??o no plugin, ficou bem legal, vai facilitar muito nosso trabalho. Muito obrigado por isso.

    So n?o entendi por que esta aparecendo apenas nos resultados da pesquisa de pedidos no admin e n?o na lista de pedidos geral no admin conforme sua descri??o do changelog?
    Screen: https://imgur.com/a/MS54z

    Plugin Author Claudio Sanches

    (@claudiosanches)

    Aparece tanto na tela normal como na de busca.

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘códigos de rastreamento em orders overview’ is closed to new replies.