Bearbeiten der Ansichtsseiten „Mein Konto“ in WooCommerce

Lesezeit: 2 Minuten

Benutzer-Avatar
Mohammed Adel

Auf den Seiten “Bestellansicht” von WooCommerce Mein Konto soll ich ein visuelles Tracking wie dieses hinzufügen:
Geben Sie hier die Bildbeschreibung ein

Auf den aktuellen Seiten, um jede Bestellung zu verfolgen, über den Bestelldetails:

Geben Sie hier die Bildbeschreibung ein

  1. Das erste Problem ist, dass ich nicht weiß, wie ich HTML- und PHP-Code zur Bestellseite hinzufügen soll. Ich habe versucht, Hooks in der functions.php hinzuzufügen, aber es hat nicht funktioniert

  2. Das zweite Problem ist, dass ich den Status jeder Bestellung auf der Bestellseite anzeigen möchte (z. B.: in Bearbeitung oder geliefert usw.).

Hier ist mein functions.php-Code, um zu versuchen, dies zu erreichen:

    // **
//  * Add custom tracking code to the view order page
//  */
add_action( 'woocommerce_view_order', 'my_custom_tracking' );
function my_custom_tracking(){
    $order = wc_get_order( $order_id );

    $order_id  = $order->get_id(); // Get the order ID
    $parent_id = $order->get_parent_id(); // Get the parent order ID (for subscriptions…)

    $user_id   = $order->get_user_id(); // Get the costumer ID
    $user      = $order->get_user(); // Get the WP_User object

    echo $order_status  = $order->get_status(); // Get the order status 
}

Benutzer-Avatar
LoicTheAztec

In deinem Code sind einige Fehler:

  1. Das $order_id Variable ist bereits als Funktionsargument für diesen Hook enthalten, fehlt aber in deinem Code.
  2. Du kann nicht verwenden echo mit $order_status = $order->get_status();

Versuchen Sie es stattdessen:

add_action( 'woocommerce_view_order', 'my_custom_tracking' );
function my_custom_tracking( $order_id ){
    // Get an instance of the `WC_Order` Object
    $order = wc_get_order( $order_id );
    
    // Get the order number
    $order_number  = $order->get_order_number();
    
    // Get the formatted order date created
    $date_created  = wc_format_datetime( $order->get_date_created() );
    
    // Get the order status name
    $status_name  = wc_get_order_status_name( $order->get_status() );
    
    // Display the order status 
    echo '<p>' . __("Order Status:") . ' ' . $status_name . '</p>';
}

Der Code wird in die function.php-Datei Ihres aktiven untergeordneten Designs (oder aktiven Designs) eingefügt. Getestet und funktioniert.


Wenn Sie wollen ändern Sie die gelb unterstrichenen Texte In Ihrem zweiten Screenshot müssen Sie Änderungen vornehmen myaccount/view-order.php Vorlagendatei:

  1. Zuerst lesen amtliche Dokumentation verstehen “wie man Vorlagen über ein Design überschreibt”.

  2. Sobald Sie fertig sind und die WooCommerce-Vorlagen wie in der Dokumentation erklärt in Ihr aktives Design kopiert haben, öffnen Sie Bearbeiten myaccount/view-order.php Vorlagendatei.

  3. Die vorzunehmenden Änderungen befinden sich in den Zeilen 26 bis 34:

     <p><?php
         /* translators: 1: order number 2: order date 3: order status */
         printf(
             __( 'Order #%1$s was placed on %2$s and is currently %3$s.', 'woocommerce' ),
             '<mark class="order-number">' . $order->get_order_number() . '</mark>',
             '<mark class="order-date">' . wc_format_datetime( $order->get_date_created() ) . '</mark>',
             '<mark class="order-status">' . wc_get_order_status_name( $order->get_status() ) . '</mark>'
         );
     ?></p>
    

1353750cookie-checkBearbeiten der Ansichtsseiten „Mein Konto“ in WooCommerce

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy