Jak přidat vlastní položku do hromadných akcí produktů - Affinite.io CZ

Jednou z poměrně obtěžujících věcí u WooCommerce, je nutnost neustále něco rozklikávat. Naštěstí je možné využít hromadné akce v adminu WooCommerce.

Do roletky pro hromadné akce lze přidat další položku pomocí kódu:

add_filter( 'bulk_actions-edit-product', 'musilda_product_bulk_actions', 20, 1 );
function musilda_product_bulk_actions( $actions ) {

	$actions['set-outofstock'] = __( 'Produkt není skladem', 'musilda' );
	return $actions;

}

Tento filtr vám umožní rozšířit volbu hromadných akcí, já jsem jako příklad použil nastavení stavu skladu produktu.

Výhoda hromadné akce je v tom že si zaškrtnete, které produkty chcete upravit:

Po zaškrtnutí a kliknutí na použít, se provede funkce, která je zaregistrovaná do hooku handle_bulk_actions-edit-product:

add_filter( 'handle_bulk_actions-edit-product', 'musilda_handle_product_bulk_actions', 10, 3 );
function musilda_handle_product_bulk_actions( $redirect_to, $action, $post_ids ) {

	if ( $action !== 'set-outofstock' ) {
		return $redirect_to;
	}

	foreach ( $post_ids as $post_id ) {

		$product = wc_get_product( $post_id );

		if ( !empty( $product ) && is_object( $product ) ) {

			$product->set_stock_status( 'outofstock' );
			$product->save();

		}

	}

	return $redirect_to;

}

Jak můžete vidět, funkce přijme id akce a pole produktů, které jsou označené. Následně si vyvoláme objekt každého produktu, nastavíme stav skladu a uložíme.

Výsledek:

Tento postup vám tak umožňuje hromadně pracovat s produkty z výpisu. Není třeba pro nějaké nastavení chodit do detailu produktu.

Také si můžete napsat funkci, jenž vám rozšíří funkčnost e-shopu. Naposledy jsem tento postup použil při exportu stavu skladu do csv pro skladový program.

Přidání vlastního tabu v datech produktu
Přidání vlastního tabu v datech produktu
19 Lis, 2021
Jak skrýt specifické objednávky pro uživatele v administraci
Jak skrýt specifické objednávky pro uživatele v administraci
21 Lis, 2021

Looking for something?