Nefunkční custom order status ve WooCommerce - Affinite.io CZ

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'               => _n_noop( 'Control order (%s)', 'Control order (%s)', '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

Postavte si vlastní eshop pomocí WooCommerce
Postavte si vlastní eshop pomocí WooCommerce
05 Říj, 2014
Odstranění rozměrů obrázku v kódu příspěvku
Odstranění rozměrů obrázku v kódu příspěvku
10 Říj, 2014

Komentáře nejsou povoleny.

Looking for something?