Nefunkční custom order status ve WooCommerce

V říjnu byla vydána aktualizace WooCommerce, která v sobě měla jednu nepříjemnou změnu a to odlišný přístup k definování statusu objednávky. Bohužel je tato změna zpětně nekompatibilní a řada funkcí, nebo pluginů, které toto v sobě mají, může být nefunkční.

Na to, že tvůrci pluginů budou hned upravovat své produkty se nemůžete spolehnout, viz. tady . Náprava naštěstí není složitá, i když mi to chvíli zabralo, než jsem na to přišel.

Původní vytvoření custom order status byl ve vytvoření nového termu. V podstatě stačilo použít tuto funkci

function add_custom_status(){
    $term = get_term_by( 'name', 'Custom status', 'shop_order_status' );
    if ( ! $term ) {
        wp_insert_term( 'Custom status', 'shop_order_status' );
    }
   }

V polovině září se však použití termu změnilo na status postu. Objednávky ve WooCommerce jsou vlastně custom post type a jsou tak ukládány do tabulky wp_posts (wp_ dle aktuálního prefixu). A stavy objednávek tak byly taxonomie pro custom post type.
V rámci zjednodušení přístupu ke stavům, se vývojáři rozhodli vytvořit custom post statusy, které budou mít prefix wc. Takže objednávka ve stavu čekající, má v nyní post status wc-pending. A v tom je zakopaný pes.

Custom order status ve WooCommerce nově vytvoříte takto

  add_action( 'init', 'register_custom_order_status', 5 );
 
  function register_custom_order_status(){
  register_post_status( 'wc-control', array(
			'label'                     => _x( 'Custom status', 'Order status', 'woocommerce' ),
			'public'                    => true,
			'exclude_from_search'       => false,
			'show_in_admin_all_list'    => true,
			'show_in_admin_status_list' => true,
			'label_count'               =&gt; _n_noop( 'Control order <span class="count">(%s)</span>', 'Control order <span class="count">(%s)</span>', 'woocommerce' )
		) );
    }

Samozřejmě všude, kde programátoři použili pro výpis objednávek s vlastním statusem, je potřeba upravit funkce, aby místo termu používaly post_status.

Doufám, že vám tip pomůže, protože na webu jsou nyní dohledatelné spíše starší návody.

Další užitečné snippety najdete na stránce Užitečné snippety pro WooCommerce

About The Author

Zajímá mne Wordpress, responsivní šablony a zkrátka vše kolem tohoto skvělého redakčního systému.

Související články

2 Comments

  1. Tomáš Kocifaj

    Nj, co se dá dělat. Když je něco špatně napsaný a je třeba to napsat konečně „správně“, musí padat hlavy :-) Aneb, když se kácí les hold občas můžou lítat třísky ;-)

    Odpověď
  2. Maxx

    Mam dotaz k tomuto pluginu, instalace uplne v pohode.
    kdyz dam prudukt jako jednoduchy vse funguje
    ale kdyz sem dal prudukt s variantami (jedna se o velikosti trik) tak mi v adminu ukazuje celkem pocet skladem, ale kdyz si otevru stranky tak mam pouze moznost vyberu velikost a pak se nic nestane, nezobrazuje se tlacitko pridat do kosiku ani stavy u jednotlivych velikosti…

    nevite co s tim? predem dekuji

    Odpověď

Přidejte komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *