Ankündigung

Einklappen
Keine Ankündigung bisher.

Script für Rechnungstemplate abhängig von der Benutzerrolle in Wordpress

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Scriptsuche Script für Rechnungstemplate abhängig von der Benutzerrolle in Wordpress

    Moin zusammen,

    in meinem Woocommerce-Shop wird für jede Bestellung vom Plugin Germanized Pro eine Rechnung aus einer Rechnungsvorlage erzeugt. Nun bräuchte ich ein Script, das bewirkt, dass je nachdem welche Benutzerrolle ein Kunde in Wordpress hat, die Rechnung aus verschiedenen Vorlagen erstellt wird

    Im Internet habe ich folgenden Code gefunden, der Rechnungen aus verschiedenen Vorlagen erzeugt, abhängig davon ob der Kunde aus Österreich oder aus einem anderen EU Land kommt:

    PHP-Code:
    <?php

    add_filter
    'storeabill_invoice_get_template', function( $template$invoice ) {
        
    $country     $invoice->get_taxable_country();
        
    $template_id false;
        
        if ( 
    'AT' === $user ) {
            
    $template_id 320;
        } elseif ( 
    $invoice->is_eu() ) {
            
    $template_id 323;
        } elseif ( 
    $invoice->is_third_country() ) {
             
    $template_id 325;
        }
        
        if ( 
    $template_id ) {
            if ( 
    $template sab_get_document_template$template_id ) ) {
                return 
    $template;
            }
        }
        
        return 
    $template;
    }, 
    10);
    Dieser Code müsste so verändert werden, dass für Kunden mit der Benutzerrolle "Kunde" das Rechnungstemplate "B2C" und für Kunden mit der Benutzerrolle "B2B" das Rechnungstemplate "B2B" verwendet wird.

    Leider habe ich von PHP keine Ahnung und krieg das nicht selber hin. Freue mich auf Lösungsvorschläge. Teilt mir gerne Eure Preisvorstellung mit

    Danke!

  • #2
    Der code oben ist zunächst mal entweder unvollständig oder falsch.

    PHP-Code:
    $country     $invoice->get_taxable_country(); 
    aber später
    PHP-Code:
     if ( 'AT' === $user ) { 
    $user ist hier aber gar nicht bekannt.

    Ich bin nun kein wooCommerce Profi, aber ganz allgemein benötigst du für dein vorhaben tatsächlich den User.
    Sobald du die Rolle des users kennst, kannst du auf ähnliche Weise vergleichen und das entsprechende template auswählen.

    eine (ungeprüfte) Funktion, um alle Rollen des Nutzers zu erhalten:

    PHP-Code:
    function au_get_current_user_roles() {    
        
    $current_user wp_get_current_user();       // Retrieves the current user    
        
    if($current_user->exists() && count($current_user->roles)) {        // Checks if user is logged in and has roles
            
    return $current_user->roles;  // Return all roles as array    
        
    }    
        return array(); } 
    // Return empty array      

    zurück bekommst du ein Array, welches alle Rollen des Nutzers enthält.
    Jetzt kannst du prüfen, ob eine bestimmte Rolle darin enthalten ist:

    PHP-Code:
    if(in_array('administrator'au_get_current_user_roles())) {    
        
    // Do something for admins only

    Kommentar

    Lädt...
    X