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 );



