Kilka dni temu napisałem post, w którym wymieniłem 25 najbardziej przydatnych urywków WooCommerce, których używam, a wielu ludzi prosiło o więcej, więc dzisiaj postanowiłem dostarczyć więcej urywków dla WooCommerce! Zaczynamy!

1-Zastąp domyślne logo PayPal WooCommerce

/*
 * Wymień domyślną ikonę Paypal WooCommerce
 */
function paypal_checkout_icon () {
 return "https://www.paypalobjects.com/webstatic/mktg/logo-center/logo_betalen_met_paypal_nl.jpg'; // wpisz tutaj swój własny adres URL obrazka
}
add_filter ('woocommerce_paypal_icon', 'paypal_checkout_icon');

2-Zastąp domyślny obraz zastępczy produktu

/*
* idzie w funkcjach tematycznych.php lub niestandardową wtyczkę. Zamień nazwę pliku obrazu / ścieżkę na własną:)
*
**/
add_action ('init', 'custom_fix_thumbnail');
 
function custom_fix_thumbnail () {
  add_filter ('woocommerce_placeholder_img_src', 'custom_woocommerce_placeholder_img_src');
   
	function custom_woocommerce_placeholder_img_src ($src ) {
	$upload_dir = wp_upload_dir();
	$uploads = untrailingslashit( $upload_dir['baseurl'] );
	$src = $uploads . '/2012/07/ thumb1.jpg";
	 
	return $ src;
	}
}

3-Usuń „produkty” z bułki tartej

/*
 * Ukryj "produkty" w WooCommerce breadcrumb
 */
function woo_custom_filter_breadcrumbs_trail ($trail ) {
  foreach ($trail as $k = > $v) {
    if ( strtolower (strip_tags ($v)) = = 'products') {
      unset ($trail[$k] );
      break;
    }
  }

  return $ trail;
}

add_filter ('woo_breadcrumbs_trail', 'woo_custom_filter_breadcrumbs_trail', 10) ;

4-pusty koszyk

/*
 * Pusty koszyk WooCommerce
 */
function my_empty_cart () {
	global $woocommerce;
	$woocommerce->koszyk->empty_cart(); 
}
add_action ('init', 'my_empty_cart');

5-Automatyczne dodawanie produktu do koszyka podczas wizyty

/*
 * Dodaj produkt do koszyka podczas wizyty
 */
function add_product_to_cart () {
	jeśli ( ! is_admin() ) {
		global $woocommerce;
		$product_id = 64;
		$found = false;
		// sprawdź, czy produkt jest już w Koszyku
		if (sizeof ($woocommerce->cart->get_cart ()) > 0) {
			foreach ($woocommerce->cart->get_cart () as $cart_item_key => $values) {
				$_product = $values ['data'];
				if ($_product - > id = = $product_id )
					$found = true;
			}
			// jeśli produkt nie został znaleziony, dodaj go
			jeśli ( ! $ found )
				$woocommerce - > koszyk - > add_to_cart ($product_id );
		} else {
			// jeśli nie ma produktów w Koszyku, dodaj go
			$woocommerce - > koszyk - > add_to_cart ($product_id );
		}
	}
}
add_action ('init', 'add_product_to_cart');

6-Dodaj niestandardową walutę / symbol

add_filter ('woocommerce_currencies', 'add_my_currency' );
 
function add_my_currency ($currencies ) {
     $waluty['ABC'] = __( 'nazwa waluty', 'woocommerce' );
     zwrot $ waluty;
}
 
add_filter ('woocommerce_currency_symbol', 'add_my_currency_symbol', 10, 2);
 
function add_my_currency_symbol ($currency_symbol, $currency ) {
     switch ($currency ) {
          case 'ABC': $currency_symbol ='$'; break;
     }
     return $currency_symbol;
}

7-Zmień tekst przycisku Dodaj do koszyka

/**
 * Zmiana tekstu Dodaj do koszyka na stronach pojedynczych produktów
 */
function woo_custom_cart_button_text () {
	return __('my Button Text','woocommerce');
}
add_filter ('single_add_to_cart_text', 'woo_custom_cart_button_text');



/**
 * Zmiana tekstu Dodaj do koszyka w Archiwum produktów
 */
function woo_archive_custom_cart_button_text () {
	return _ _ ('my Button Text',' woocommerce');
}
add_filter ('add_to_cart_text', 'woo_archive_custom_cart_button_text');

8-przekierowanie subskrypcja Dodaj do koszyka do strony kasy

/**
 * Przekierowanie subskrypcji Dodaj do koszyka na stronę kasy
 *
 * @ param string $url
 */
function custom_add_to_cart_redirect ($url ) {
  
  $product_id = (int) $_REQUEST ['Dodaj do koszyka'];
	if (class_exists ('WC_Subscriptions_Product')) {
		if ( WC_Subscriptions_Product:: is_subscription ($product_id)) {
			return get_permalink (get_option ('woocommerce_checkout_page_id' ) );
		} else return $ url;
	} else return $ url;
	
}
add_filter ('add_to_cart_redirect', 'custom_add_to_cart_redirect');

Ten fragment wymaga wtyczki subskrypcje.

9-przekierowanie do strony kasy po dodaniu do koszyka

/**
 * Przekierowanie subskrypcji Dodaj do koszyka na stronę kasy
 *
 * @ param none
 */
function add_to_cart_checkout_redirect () {
	wp_safe_redirect (get_permalink (get_option ('woocommerce_checkout_page_id' ) ) );
	die ();
}
add_action ('woocommerce_add_to_cart', 'add_to_cart_checkout_redirect', 11 );

10-CC wszystkie e-maile

 /**
 * Dodatkowa Funkcja WooCommerce
 * --------------------------
 *
 * Dodaj kolejnego odbiorcę wiadomości e-mail do wszystkich wiadomości e-mail WooCommerce
 *
 */
function woo_cc_all_emails () {
  return 'Bcc: youremail@yourdomain.com". "Rn";
}
add_filter ('woocommerce_email_headers', 'woo_cc_all_emails');

11-wyślij e-mail, gdy nowe zamówienie zostanie zakończone z wykorzystanymi kuponami

/**
 * Dodatkowa Funkcja WooCommerce
 * --------------------------
 *
 * Wyślij e-mail za każdym razem, gdy zamówienie z kuponem (kuponami) zostanie zrealizowane
 * E-mail zawiera kupon(y) używany podczas procesu realizacji transakcji
 *
 */ 
function woo_email_order_coupons ($order_id ) {
        $order = new WC_Order ($order_id );
        
        if ($order->get_used_coupons() ) {
        
          $to = "youremail@yourcompany.com';
	        $subject = 'nowe zlecenie zakończone';
	        $headers = 'From: My Name' . "Rn";
	        
	        $message = ' nowe zlecenie zostało zakończone.n';
	        $ wiadomość .= "Order ID:",$order_id.'n';
	        $ wiadomość .= "Używane kupony:n",;
	        
	        foreach ($order->get_used_coupons () as $ coupon) {
		        $ wiadomość .= $ kupon.'n';
	        }
	        @ wp_mail( $to, $subject, $message, $headers );
        }
}
add_action ('woocommerce_thankyou', 'woo_email_order_coupons');

12-Zmień numer powiązanych produktów

/**
 * Dodatkowa Funkcja WooCommerce
 * --------------------------
 *
 * Zmień liczbę powiązanych produktów na stronie produktu
 * Ustaw własną wartość dla 'posts_per_page'
 *
 */ 
function woo_related_products_limit () {
  global $ produkt;
	
	$args = array(
		'post_type' = > 'produkt',
		'no_found_rows' = > 1,
		'posts_per_page' = > 6,
		'ignore_sticky_posts' = > 1,
		'orderby' = > $orderby,
		'post _ _ in' = > $ related,
		'post _ _ not _ in' = > array ($product - > id)
	);
	return $ args;
}
add_filter ('woocommerce_related_products_args', 'woo_related_products_limit');

13-Wyklucz produkty z określonej kategorii na stronie sklepu

 /**
 * Usuń produkty ze strony sklepu według kategorii
 *
 */
function woo_custom_pre_get_posts_query ($q ) {
 
	jeśli ( ! $q - > is_main_query ()) return;
	jeśli ( ! $q- > is_post_type_archive ()) return;
	
	jeśli ( ! is_admin () & & is_shop() ) {
 
		$q- > set ('tax_query', array (array(
			'taxonomy' = > 'product_cat',
			'field' = > 'slug',
			'terms' = > array ('buty'), / / nie wyświetlaj produktów w kategorii Buty na stronie sklepu
			'operator' = > 'NOT IN'
		)));
	
	}
 
	remove_action ('pre_get_posts', 'custom_pre_get_posts_query');
 
}
add_action ('pre_get_posts', 'woo_custom_pre_get_posts_query');

14-Zmiana numeru kolumn sklepu

/**
 * Dodatkowa Funkcja WooCommerce
 * --------------------------
 *
 * Zmiana numeru kolumn produktu na stronach sklepu
 *
 */
function woo_product_columns_frontend () {
    global $woocommerce;

    // Wartość domyślna używana również dla kategorii i podkategorii
    $columns = 4;

    // Lista Produktów
    if ( is_product_category() ) :
        $columns = 4;
    endif;

    // Produkty Powiązane
    if ( is_product() ) :
        $columns = 2;
    endif;

    // Cross Sells
    if ( is_checkout() ) :
        $columns = 4;
    endif;

	return $ columns;
}
add_filter ('loop_shop_columns', 'woo_product_columns_frontend');

15-Wyłącz karty WooCommerce

 /**
 * Usuń karty produktów
 *
 */
function woo_remove_product_tab ($tabs) {

    unset ($tabs['description']); / / Usuń kartę opisu
    unset ($tabs['recenzje']); / / Usuń kartę recenzje
    unset ($tabs['additional_information']); / / Usuń kartę dodatkowe informacje

 	return $tabs;
 
}
add_filter ('woocommerce_product_tabs', 'woo_remove_product_tab', 98) ;

16-Usuń bułkę tartą

 /**
 * Usuń WooCommerce BreadCrumb
 *
 */
remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20) ;

17-Ogranicz listę krajów wysyłki

/**
 * Dodatkowa Funkcja WooCommerce
 * --------------------------
 *
 * Ogranicz listę krajów wysyłki
 *
 */
function woo_override_checkout_fields ($fields ) { 

	$fields['shipping']['shipping_country'] = array(
		'type' = > 'select',
		'label' = > __('moja nowa lista krajów','woocommerce'),
		'options' = > array ('AU' = > 'Australia')
	);

	return $ fields; 
} 
add_filter ('woocommerce_checkout_fields', 'woo_override_checkout_fields');

18-Replace ” Za Darmo!”ciąg produktów

/**
 * Dodatkowa Funkcja WooCommerce
 * --------------------------
 *
 * Zastąp " Za Darmo!"przez niestandardowy ciąg
 *
 */
function woo_my_custom_free_message () {
	powrót " ten produkt jest bezpłatny!";
}

add_filter ('woocommerce_free_price_html', 'woo_my_custom_free_message');

19-Ukryj wszystkie inne metody wysyłki, gdy Darmowa Wysyłka jest dostępna

// Ukryj wszystkie opcje wysyłki, gdy darmowa wysyłka jest dostępna
add_filter ('woocommerce_available_shipping_methods', 'hide_all_shipping_when_free_is_available', 10, 1 );
 
/**
* Ukryj wszystkie opcje wysyłki, gdy darmowa wysyłka jest dostępna
*
* @ param array $available_methods
*/
function hide_all_shipping_when_free_is_available ($available_methods ) {
 
  	if (isset ($available_methods['free_shipping'] ) ) :
		
		// Get free Shipping array into a new array
		$freeshipping = array();
		$freeshipping = $available_methods ['free_shipping'];
 
		// Opróżnij tablicę $ available_methods
		unset ($available_methods );
 
		// Dodaj darmową wysyłkę do $avaialble_methods
		$available_methods = array();
		$available_methods [] = $ freeshipping;
 
	endif;
 
	return $available_methods;
}

20-sprawdź, czy pole „Stan” kasy nie jest wymagane

/**
 * Dodatkowa Funkcja WooCommerce
 * --------------------------
 *
 * Make" state " Pole nie jest wymagane przy kasie
 *
 */
 
add_filter ('woocommerce_billing_fields', 'woo_filter_state_billing', 10, 1 );
add_filter ('woocommerce_shipping_fields', 'woo_filter_state_shipping', 10, 1 );

function woo_filter_state_billing ($address_fields ) { 
	$address_fields['billing_state'] ['required'] = false;
	return $address_fields;
}

function woo_filter_state_shipping ($address_fields) { 
	$address_fields['shipping_state'] ['required'] = false;
	return $address_fields;
}

21-Utwórz kupon programowo

$coupon_code = 'UNIQUECODE'; / / Kod
$kwota = '10'; / / kwota
$discount_type = 'fixed_cart'; // Type: fixed_cart, percent, fixed_product, percent_product
					
$kupon = array(
	'post_title' = > $coupon_code,
	'post_content'=>",
	'post_status' = > 'publish',
	'post_author' = > 1,
	'post_type' = > 'shop_coupon'
);
					
$new_coupon_id = wp_insert_post ($kupon );
					
// Dodaj meta
update_post_meta ($new_coupon_id, 'discount_type', $discount_type );
update_post_meta ($new_coupon_id, 'coupon_amount', $amount );
update_post_meta ($new_coupon_id, 'individual_use', 'no' );
update_post_meta ($new_coupon_id, 'product_ids', " );
update_post_meta ($new_coupon_id, 'exclude_product_ids', " );
update_post_meta ($new_coupon_id, 'usage_limit', " );
update_post_meta ($new_coupon_id, 'expiry_date', " );
update_post_meta ($new_coupon_id, 'apply_before_tax', 'yes' );
update_post_meta ($new_coupon_id, 'free_shipping', 'no' );

22-Zmień temat wiadomości e-mail

/*
 * Filtry tematyczne: 
 * woocommerce_email_subject_new_order
 * woocommerce_email_subject_customer_procesing_order
 * woocommerce_email_subject_customer_completed_order
 * woocommerce_email_subject_customer_invoice
 * woocommerce_email_subject_customer_note
 * woocommerce_email_subject_low_stock
 * woocommerce_email_subject_no_stock
 * woocommerce_email_subject_backorder
 * woocommerce_email_subject_customer_new_account
 * woocommerce_email_subject_customer_invoice_paid
 **/
add_filter ('woocommerce_email_subject_new_order', 'change_admin_email_subject', 1, 2);
 
function change_admin_email_subject ($subject, $order ) {
	global $woocommerce;
 
	$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
 
	$subject = sprintf ('[%s] Nowe zamówienie klienta (#%s) z nazwy % s % s', $LOGNAME, $order- > id, $order - >billing_first_name, $order - > billing_last_name );
 
	return $subject;
}

23-Dodaj opłatę niestandardową do koszyka

/**
 * Dodatkowa Funkcja WooCommerce
 * --------------------------
 *
 * Dodaj niestandardową opłatę do koszyka automatycznie
 *
 */
function woo_add_cart_fee () {

	global $woocommerce;
	
	if (is_cart() ) {
		$woocommerce->koszyk->add_fee( __('Custom', 'woocommerce'), 5 );
	}
	
}
add_action ('woocommerce_before_cart_table', 'woo_add_cart_fee');

24-Custom dodany do koszyka wiadomość

/**
 * Niestandardowe Wiadomości Dodaj Do Koszyka
 * Dodaj to do funkcji motywu.plik php
 **/
add_filter ('woocommerce_add_to_cart_message', 'custom_add_to_cart_message');
function custom_add_to_cart_message () {
	global $woocommerce;
 
	// Output success messages
	if (get_option ('woocommerce_cart_redirect_after_add')= = 'yes') :
 
		$return_to = get_permalink(woocommerce_get_page_id('sklep'));
 
		$message = sprintf('<a href="%S" class="button">%s</a> %s', $return_to, __('Continue Shopping →', 'woocommerce'), __('produkt dodany do koszyka.', 'woocommerce'));
 
	else :
 
		$message = sprintf('<a href="%S" class="button">%s</a> %s', get_permalink(woocommerce_get_page_id('cart')), __('View Cart →', 'woocommerce'), __('produkt dodany do Twojego koszyka.', 'woocommerce'));
 
	endif;
 
		return $ message;
}

25-Dodaj metodę płatności do wiadomości e-mail administratora

/**
 * Dodatkowa Funkcja WooCommerce
 * --------------------------
 *
 * Dodaj metodę płatności do Admin new order email
 *
 */
add_action ('woocommerce_email_after_order_table', 'woo_add_payment_method_to_admin_new_order', 15, 2 ); 

function woo_add_payment_method_to_admin_new_order ($order, $is_admin_email ) { 
	if ($is_admin_email) { 
	echo '<p><strong>metoda płatności:</strong> ' . $order->payment_method_title . "</p>"; 
	} 
}

I bum! To jest to! Mam nadzieję, że spodobają ci się te fragmenty. Jeśli masz jakieś sugestie, nie wahaj się zostawić komentarz poniżej!


Nie masz gotowego motywu WooCommerce lub chcesz nowy? Sprawdź nasz Total WordPress theme!

You May Also Like

Jak naprawić nieprawidłowy błąd JSON w WordPress (Przewodnik dla początkujących)

W artykule: Co powoduje błąd „nieprawidłowa odpowiedź JSON” w WordPress?1. Sprawdź adresy…

Jak zmienić kolor linku w WordPress (poradnik dla początkujących)

W artykule: Dlaczego Linki Są Ważne?Jak dodawać linki w postach i stronach…

Jak naprawić błąd krytyczny w WordPress (krok po kroku)

W artykule: Co To jest błąd krytyczny w WordPress?Co powoduje krytyczny błąd…

Jak zainstalować WordPress lokalnie na komputerze Mac za pomocą MAMP

W artykule: Jak zainstalować MAMP na komputerze MacInstalacja WordPress na komputerze MacWypróbowanie…