• Resolved sectorx

    (@sectorx)


    Dobry den,

    mam jeden custom field extra naprogramovany v jednom WC produkte. Prenasam ho do kosika a potom do WC orderu.
    Problem je, ze do vygenerovanej FA prelezie metakey value z toho custom fieldu a nie filtrovana hodnota.

    Taketo 2 funkcie mi to obsluhuju.

    // takto prenasam custom field z kosika do orderu
    function add_custom_data_to_order( $item, $cart_item_key, $values, $order ) 
    {
    	foreach( $item as $cart_item_key=>$values ) 
    	{
    		if( isset( $values['moj_custom_field'] ) ) 
    			$item->add_meta_data( 'moj_custom_field' , $values['moj_custom_field'], true );
    	}
    }
    add_action( 'woocommerce_checkout_create_order_line_item', 'add_custom_data_to_order', 10, 4 );
    
    // takto zabezpecim ze sa vo WC orders zobrazi 'Extra venovanie na produkte' namiesto 'moj_custom_field'
    function change_order_item_meta_title( $key, $meta, $item )
    {
        if ( $meta->key === 'moj_custom_field' ) $key = __( 'Extra venovanie na produkte', 'moj-plugin'); 
        return $key;
    }
    add_filter( 'woocommerce_order_item_display_meta_key', 'change_order_item_meta_title', 20, 3 );

    Vo FA mi to pri tej polozke vylezie nejako takto:
    Moj produkt
    moj_custom_field: Nejaky napis

    Co by som potreboval je aby mi to dalo do FA toto:
    Moj produkt
    Extra venovanie na produkte: Nejaky napis

    Poradite prosim ako na to?

Viewing 3 replies - 1 through 3 (of 3 total)
  • Plugin Author superfaktura

    (@superfaktura)

    Dobry deň,

    m??te pou?i? filter sf_item_data a nahradi? moj_custom_field textom aky chcete ma? na faktúre. Príklad pou?itia m??te vidie? ni??ie.

    function my_sf_item_data($item_data, $order, $product) {
        $item_data['description'] = 'popis produktu';
        return $item_data;
    }
    add_filter('sf_item_data', 'my_sf_item_data', 10, 3);
    Thread Starter sectorx

    (@sectorx)

    Vdaka za rychlu odpoved. Skusil som to ale toto nie je to co potrebujem.

    Ten filter umoznuje uplne modifikovat description ale toto nie je ziaduce.

    Vypisal som si tu $item_data a vyzera to tam takto nejako:

    Array
    (
    [name] => Test produkt
    [quantity] => 1
    [sku] =>
    [unit] => ks
    [unit_price] => 49
    [tax] => 0
    [description] => moj_custom_datum: 1.1.2000, themehigh_custom_preferred_language: 2, themehigh_custom_darcekovy_obal: 1
    Popis produktu
    )

    K produktu user zadava pri nakupe datum, takze nejde len o to zmenit nejako ten popis na nieco ine staticke. Keby som tam mal len 1 custom field tak by sa to nejako dalo vyparsovat. Chcelo by to ale nejake systematickejsie riesenie.

    Navyse tam mam este pouzity plugin na custom product options
    https://www.themehigh.com/product/woocommerce-extra-product-options/ a ten tam pridava tiez nejake custom order item meta tymto sposobom a vo FA sa zobrazuju ako metakey nefiltrovane, rovnako ako ten ‘moj_custom_datum’.

    Idealne by bolo ako sa kreuje ta [description] urobit, aby to slo este cez ten filter woocommerce_order_item_display_meta_key a nahradzalo to tie metakey filtrovanymi hodnotami.

    Ten plugin od Themehigh pozeram ma filter na tie metakey/values takto nastaveny:
    add_filter( ‘woocommerce_order_item_get_formatted_meta_data’, array($this, ‘filter_order_item_get_formatted_meta_data’), 10, 2);

    Myslite ze by sa to dalo nejako urobit aby superFA brala do uvahy tieto filtre?

    Plugin Author superfaktura

    (@superfaktura)

    Pre?o statické? To bol len príklad. Spravte predsa oby?ajny str_replace len na tú ?as?, ktorú potrebujete zmeni?.

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘prenasanie custom filtrovaneho metakey do FA – order item meta’ is closed to new replies.