2017-11-29 9 views
1

Wenn die für WooCommerce auf WordPressShipStation Plugin-Erweiterung verwenden, lief ich in ein Problem, wo die Adresse zu ShipStation exportiert würde die Rechnungsadresse anstelle der Standard-Adresse (in meinem Fall die Lieferadresse) aus den WooCommerce Einstellungen.WooCommerce Schiffsstation extention mit Rechnungsadresse statt Lieferadresse

Dinge, die ich versucht:

  • Versandstationen gewährleistet innerhalb meiner Anpassung richtig eingestellt wurde
  • der Standardadresse sichergestellt wurde auf „Versand“ für WooCommerce in den WooCommerce Einstellungen
  • keine widersprüchlichen Gewährleistung Anrufe wurden an ShipStation Haken oder Filter

Ich konnte keine ordnungsgemäße Lösung finden auf, wenn Sie mit der automatischen Unterstützung sprachen, die den normalen Ablauf der Deaktivierung von Themen- und Plugin-Konflikten vorschlug, indem Sie sie deaktivierten und Twenty-Seventeen als Thema verwendeten.

Kein Fehler von ihnen. Nur normal muss man die Grundlagen überprüfen. Angesichts des Mangels an Entschlossenheit für die letztendliche Lösung dachte ich, dass ich hier mein Problem posten würde, wie es eine Lösung im Antwortbereich war - in der Hoffnung, dass dies keine Art von Verstoß gegen die Richtlinien für Stack Overflow ist. Antwort:

Antwort

1

Was ich fand, war, dass das Plugin überprüft, um zu sehen, ob ein Lieferland für den Benutzer eingestellt ist, bevor er sich entschließt, eine Adresse an die Schiffsstation zu senden. Dies ist oft in Ordnung, aber in meinem Fall wurden die Länder aus dem Checkout-Formular entfernt, so dass sie nie für den Checkout-Kunden festgelegt wurden. Dies bedeutete, dass die Überprüfung fehlschlagen würde, wenn die ShipStation Daten für den Export an ShipStation bereitstellen würde.

Meine Arbeit bestand darin, das Versand- und Rechnungsland auf "US" (das Herkunftsland für meinen Kunden) zu setzen, wenn sie null waren oder nicht definiert wurden, bevor Daten an ShipStation exportiert wurden. Da anscheinend kein Filter definiert wurde, um diese Änderung vorzunehmen, als der Export erfolgte, habe ich dieses Update an einen anderen Prozess angehängt, den unser Kunde vor jedem Versandtag ausführen würde.

foreach ($users as $user=>$value) { 
    $this_user = get_user_by('id',$user); 
    if ($this_user->billing_country == null){ 
    update_user_meta($this_user->ID,'billing_country','US'); 
    }elseif (!$this_user->billing_country) { 
    add_user_meta($this_user->ID,'billing_country','US'); 
    } 
    if ($this_user->shipping_country == null){ 
    update_user_meta($this_user->ID,'shipping_country','US'); 
    }elseif (!$this_user->shipping_country) { 
    add_user_meta($this_user->ID,'shipping_country','US'); 
    } 
} 

dies die Meta-dataeach Zeit die Erfüllung Berichte aktualisiert laufen gelassen wurden, so dass beide war immer ein Abrechnungs- und Lieferland.

Dies funktionierte für meine Situation, ist aber ein wenig unschlüssig. Ich bin offen für andere Ansätze, wenn dieses Problem häufig genug ist, um bessere Alternativen zu rechtfertigen.

Verwandte Themen