WooCommerce je jednoznačně nejrozšířenější ecommerce plugin pro WordPress. V tomto článku jsem dal dohromady své často používané WooCommerce snippety.
Tvorba odkazu pro vložení produktu do košíku
Tvorba odkazu je opravdu jednoduchá, stačí za jakýkoliv odkaz přidat ?add-to-cart=456. V této ukázce je 456 ID produktu, které může být nahrazené jakýmkoliv jiným.
http://domena.cz/pokladna/?add-to-cart=456
Odstranění polí v objednávce
Pokud prodáváte digitální zboží, tak se nepotřebujete ptát na všechny informace. Kód vložte do functions.php.
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' ); function custom_override_checkout_fields( $fields ) { unset($fields['billing']['billing_first_name']); unset($fields['billing']['billing_last_name']); unset($fields['billing']['billing_company']); unset($fields['billing']['billing_address_1']); unset($fields['billing']['billing_address_2']); unset($fields['billing']['billing_city']); unset($fields['billing']['billing_postcode']); unset($fields['billing']['billing_country']); unset($fields['billing']['billing_state']); unset($fields['billing']['billing_phone']); unset($fields['order']['order_comments']); unset($fields['billing']['billing_address_2']); unset($fields['billing']['billing_postcode']); unset($fields['billing']['billing_company']); unset($fields['billing']['billing_last_name']); unset($fields['billing']['billing_city']); return $fields; }
Nastavení počtu produktů na stránce archivu
Nastavení pro počet produktů na stránce archivu. V ukázce je return 20, který znamená 20 produktů na stránce. Kód stačí vložit do functions.php.
add_filter( 'loop_shop_per_page', create_function( '$cols', 'return 20;' ), 20 );
Automatické nastavení objednávky jako Dokončeno
V některém případě je možné nastavovat objednávky automaticky jako dokončené. Kód vložte do functions.php.
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order' ); function custom_woocommerce_auto_complete_order( $order_id ) { if ( ! $order_id ) { return; } $order = wc_get_order( $order_id ); $order->update_status( 'completed' ); }
Odstranění drobečkové navigace
Ne vždy potřebujete na stránkách obchodu drobečkovou navigaci. Kód vložte do functions.php.
add_action( 'init', 'jk_remove_wc_breadcrumbs' ); function jk_remove_wc_breadcrumbs() { remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0 ); }
Změna počtu sloupečků v archivech
Výchozí zobrazení počtu produktů na řádek nemusí vyhovovat každému. Kód vložte do functions.php.
add_filter('loop_shop_columns', 'loop_columns'); if (!function_exists('loop_columns')) { function loop_columns() { return 3; // 3 na řádku } }
Změna textu tlačítka přidat do košíku
Úprava tlačítka přidat do košíku. Kód vložte do functions.php.
//Stránka produktu add_filter( 'woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text' ); // 2.1 + function woo_custom_cart_button_text() { return __( 'Vlastní text', 'woocommerce' ); } //Stránka archivu add_filter( 'woocommerce_product_add_to_cart_text', 'woo_archive_custom_cart_button_text' ); // 2.1 + function woo_archive_custom_cart_button_text() { return __( 'Vlastní text', 'woocommerce' ); }
Odstranění záložek v detailu produktu
Úprava detailu produktu, kde můžete odstranit všechny nebo jen vybrané záložky. Kód vložte do functions.php.
add_filter( 'woocommerce_product_tabs', 'woo_remove_product_tabs', 98 ); function woo_remove_product_tabs( $tabs ) { unset( $tabs['description'] ); // Remove the description tab unset( $tabs['reviews'] ); // Remove the reviews tab unset( $tabs['additional_information'] ); // Remove the additional information tab return $tabs; }
Odstranění nadpisu ze záložky popis v detailu produktu
Výchozí nadpis v této záložce spíše překáží a často se hodí jej odstranit. Kód vložte do functions.php.
add_filter('woocommerce_product_description_heading', 'sam_product_description_heading'); function sam_product_description_heading() { return ''; }
Odstranění souvisejících produktů z detailu produktu
Když nepotřebujete související produkty v detailu produktu, můžete je jednoduše odstranit. Kód vložte do functions.php.
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 );