Custom Fields nach Woocommerce übertragen

  • Hallo,


    ich möchte meine Custom Fields und Custom Taxonomies nach Woocommerce übertragen.


    Ich habe nach dieser Anleitung gehandelt: https://docs.affiliate-toolkit…-woocommerce-uebertragen/


    Nur leider überträgt er meine eigenen Taxonomien nicht. Andere Custom Fields funktionieren (Text, Zahlen, ja/nein).


    Meine Taxonomie heißt eignung beim AT und eignung in den ACFs.


    Wo liegt der Fehler?

    Mit dem Präfix "ct_" greife ich doch auf die Custom Taxonomies in AT zu?


    Habe ich irgendwo einen Denkfehler oder einen Tippfehler?


    Gibt es noch etwas zu beachten, wenn ich die Taxonomien mit ACF konfiguriere?

    Aktuell habe ich "Ja" bei "Begriffe erstellen", "Begriffe speichern" und "Begriffe laden", als Rückgabe-wert ist "Begriffs-Objekt". Oder ist hier "Begriffs-ID" richtig?

    • Official Post

    Hallo,

    wo genau hast du den die Taxonomie angelegt? Global oder Feldgruppe?


    $eignung = ATKPTools::get_post_setting( $product_id, ATKP_PRODUCT_POSTTYPE.'_ct_eignung');

    Hier gehst du von einem Feld aus und nicht von einer Taxonomie.


    Du kannst auch die gleiche Taxonomie einem dem AT-PRodukt und einmal dem Woo-Produkt geben.


    Taxonomie zu Taxonomie kannst du damit kopieren:

    Code
    ATKPTools::copy_taxonomy($product_id, 'taxnameinat', $woocommerce_product_id, 'taxnameinwoo');


    LG Christof

  • Hi Christof,


    danke für die Antwort und die Hilfe. Ich glaube, ich habe mich selbst ein wenig verwirrt und komme nun nicht weiter.


    Meine Taxonomien habe ich in den Feldgruppen angelegt. Diese Taxonomien aus den Feldgruppen hätte ich gerne in den Taxonomien von ACF, damit ich dann über Woocommerce-Plugins darauf zugreifen kann. Die ACF-Taxonomien haben zusätzlich das Prefix acf_.


    So ganz habe ich es noch nicht verstanden, und deine Zeile liefert auch Fehler:

    2021-04-26 17:46:11 - ERROR --> Term error (parent: 0): Ungültige Taxonomie. - TaxonomyName: acf_eignung - Value: A4


    Code
    ATKPTools::copy_taxonomy($product_id, 'eignung', $woocommerce_product_id, 'acf_eignung');


    Ich habe mal ein wenig rumgebastelt und hole jetzt die Taxonomie-Values aus den Feldgruppen-Taxonomien und packe sie dann in die ACF-Taxonomien.


    Nur habe ich noch nicht ganz verstanden, was die check_taxonomy mehr leistet oder anders macht als die set_post_setting.

    set_post_setting setzt die Taxonomien oder andere Werte in die Post-Meta-Daten

    check_taxonomy erstellt und kreiert Terms und Taxonomien

    copy_taxonomy kopiert alle Werte von einer Taxonomie in die andere (Namen und Werte)


    Liege ich da richtig oder laufe ich hier fleissig auf dem Holzweg? ;)


    Edit:

    auch mein obiger Code funktioniert doch nicht so, wie erhofft. Anbei noch Screenshots, wie die Taxonomien heissen (einmal in ACF und einmal in den Feldgruppen im ATKP)

  • Ich habe ein Workaround gefunden:

    https://toolset.com/forums/topic/duplicate-product-category/


    So werden alle Taxonomien copiert:

    Code
    $original_post_id = $product_id;
    $new_post_id = $woocommerce_product_id;
    $original_post = get_post($original_post_id);
    $taxonomies = get_object_taxonomies($original_post->post_type); // returns array of taxonomy slugs for this post type
    foreach ($taxonomies as $taxonomy) {
        $post_terms = wp_get_object_terms($original_post_id, $taxonomy, array('fields' => 'slugs'));
        wp_set_object_terms($new_post_id, $post_terms, $taxonomy, false);
    }


    Verstanden habe ich es immer noch nicht, aber es funktioniert und macht das, was ich gerne hätte.