2013-10-22 19 views
12

Wie füge ich Wert zu einem Woocommerce-Attribut durch Code hinzu? Ich habe ein Attribut mit dem Namen 'Dispatch-Zeit' (Taxonomie: pa_dispatch) erstellt und möchte nun dem Dispatch-Attribut eines bestimmten Produkts einen Wert hinzufügen.woocommerce: Wert zu einem Produktattribut hinzufügen

Wie programmgesteuert?

enter image description here

Antwort

14

ich die Antwort gefunden, müssen Sie wp_set_object_terms zu setzen, die Bedingungen Gegenstand einer Taxonomie verwenden,

wp_set_object_terms($object_id, $terms, $taxonomy, $append); 

Wo kann $ append true oder false, wenn wahr ist, wird der Tag angehängt werden existing tag, wenn false, wird das Tag ersetzt.

In meinem Beispiel

wp_set_object_terms($object_id, '2 Business Days', 'pa_dispatch' , false); 

Hier ist die pa_dispatch die woo-Commerce-Taxonomie.

+1

danke. wo in deiner functions.php hast du das? und was ist $ object_id? – nicmare

+0

@nicmare Setzen Sie es dort, wo Sie den Wert ändern möchten, aber wenn Sie diese Anweisung direkt in functions.php einfügen, wird die Funktion jedes Mal ausgeführt, wenn eine Datei geladen wird! Außerdem ist die $ object_id nichts anderes als die ID des Produkts, d., Post ID dieses bestimmten Produkts. – Rao

+0

natürlich würde ich es mit save_post Hook feuern. Ich werde es versuchen. danke – nicmare

2

Sie können nicht Wert auf ein Attribut hinzufügen. Sie müssen die Produktvariable erstellen, eine Variation erstellen und sie mit dem Attribut zuweisen. In dieser Variante können Sie nun einen Wert zuweisen.

Attributes Configuration

Variations Configuration

Lesemodus:

  1. http://docs.woothemes.com/document/product-variations/
  2. http://www.youtube.com/watch?v=7PX8MWBOAeo

EDIT:

Nach mehr Klärung der Frage, hier ist eine aktualisierte Lösung.

Fügen Sie die folgende Funktion zu Ihrer functions.php hinzu. Rufen Sie es am entsprechenden Haken auf und übergeben Sie die Produkt-ID sowie die Attributwerte.

function se19519561_set_attributes($post_id, $attributes) { 

    //Type attribute 
    $product_attributes['type'] = array(
     //Make sure the 'name' is same as you have the attribute 
     'name' => htmlspecialchars(stripslashes('Dispatch Time')), 
     'value' => $attributes, 
     'position' => 1, 
     'is_visible' => 1, 
     'is_variation' => 1, 
     'is_taxonomy' => 0 
    ); 

//Add as post meta 
update_post_meta($post_id, '_product_attributes', $product_attributes); 

} 

hoffe, das hilft!

+0

Nein, das ist nicht, was ich versuche zu erreichen, ich bin in der Lage, den Wert über die GUI hinzuzufügen, aber ich möchte dies programmgesteuert in PHP tun. – Rao

+0

dh, ich möchte den Wert "3 Werktage" zu einem bestimmten Produkt "Dispatch Time" -Attribut durch PHP-Funktion hinzufügen. – Rao

+1

Möchten Sie das Attribut im laufenden Betrieb hinzufügen, wenn auf die Produktseite zugegriffen wird, oder möchten Sie dies allen Produkten auf einmal hinzufügen? –

Verwandte Themen