Bővítsük magunk Webáruházunk funkcióit

 

Sokan sokféle fejlesztést szeretnének, de sok megoldás megtalálható a neten is webáruházankhoz. A WpExplorer.com-on található 25 megoldás remélem másnak is a segítségére lesz.

Tulajdonképpen a WooCommerce nagyon hatékony webáruház, és könnyen bővíthető. A WooCommerce-ben lévő hook (horog) megoldásokkal szinte bármit meg lehet oldani. Itt van egy lista töredéke amit közzétettek  és ami adaptálhatóak lehetnek bármilyen webáruházba. Ezeket a kódokat az aktuális sablonunk a functions.php fájljába kell implementálni.

Fizetési típus hozzáadása WooCommerce admin emailhez

add_action( 'woocommerce_email_after_order_table', 'add_payment_method_to_admin_new_order', 15, 2 );
 
function add_payment_method_to_admin_new_order( $order, $is_admin_email ) {
  if ( $is_admin_email ) {
    echo '<p><strong>Payment Method:</strong> ' . $order->payment_method_title . '</p>';
  }
}

Up-sells termékek per oldal vagy per sor

remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15 );
add_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_upsells', 15 );
 
if ( ! function_exists( 'woocommerce_output_upsells' ) ) {
	function woocommerce_output_upsells() {
	    woocommerce_upsell_display( 3,3 ); // Display 3 products in rows of 3
	}
}

 

Termékkategória eltávolítása a webshop oldalról

add_action( 'pre_get_posts', 'custom_pre_get_posts_query' );

function custom_pre_get_posts_query( $q ) {
 
	if ( ! $q->is_main_query() ) return;
	if ( ! $q->is_post_type_archive() ) return;
	
	if ( ! is_admin() && is_shop() && ! is_user_logged_in() ) {
 
		$q->set( 'tax_query', array(array(
			'taxonomy' => 'product_cat',
			'field' => 'slug',
			'terms' => array( 'color', 'flavor', 'spices', 'vanilla' ), // Don't display products in these categories on the shop page
			'operator' => 'NOT IN'
		)));
	
	}
 
	remove_action( 'pre_get_posts', 'custom_pre_get_posts_query' );
 
}

 

Gyors fordítás bármely szövegre

add_filter('gettext',  'translate_text');
add_filter('ngettext',  'translate_text');
 
function translate_text($translated) {
     $translated = str_ireplace('Choose and option',  'Select',  $translated);
     return $translated;
}

 

WooCommerce kategória listázó widget-ből kivehetünk bármely kategóriát

add_filter( 'woocommerce_product_categories_widget_args', 'woo_product_cat_widget_args' );

function woo_product_cat_widget_args( $cat_args ) {
	
	$cat_args['exclude'] = array('16');
	
	return $cat_args;
}

 

Egy teljesen egyedi mezőt tudunk a termékvariációhoz hozzáadni

//Display Fields
add_action( ‘woocommerce_product_after_variable_attributes’, ‘variable_fields’, 10, 2 );
//JS to add fields for new variations
add_action( ‘woocommerce_product_after_variable_attributes_js’, ‘variable_fields_js’ );
//Save variation fields
add_action( ‘woocommerce_process_product_meta_variable’, ‘variable_fields_process’, 10, 1 );

function variable_fields( $loop, $variation_data ) { ?>

 

Lecserélhetjük vele az “Elfogyott” jelzésre a “Nincs raktáron” jelzést.

add_filter('woocommerce_get_availability', 'availability_filter_func');

function availability_filter_func($availability)
{
	$availability['availability'] = str_ireplace('Out of stock', 'Sold', $availability['availability']);
	return $availability;
}

 

Megjeleníthetjük a “kosárba gombot” a “termék már a kosárban” felirat helyett

/**
 * Change the add to cart text on single product pages
 */
add_filter( 'woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text' );

function woo_custom_cart_button_text() {

	global $woocommerce;
	
	foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) {
		$_product = $values['data'];
	
		if( get_the_ID() == $_product->id ) {
			return __('Already in cart - Add Again?', 'woocommerce');
		}
	}
	
	return __('Add to cart', 'woocommerce');
}

/**
 * Change the add to cart text on product archives
 */
add_filter( 'add_to_cart_text', 'woo_archive_custom_cart_button_text' );

function woo_archive_custom_cart_button_text() {

	global $woocommerce;
	
	foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) {
		$_product = $values['data'];
	
		if( get_the_ID() == $_product->id ) {
			return __('Already in cart', 'woocommerce');
		}
	}
	
	return __('Add to cart', 'woocommerce');
}
forrás kód

Ez is lehetne egy beépülő kód

A termékszám megjelenítést lehet vele eltüntetni a kategórianézetben

add_filter( 'woocommerce_subcategory_count_html', 'woo_remove_category_products_count' );

function woo_remove_category_products_count() {
	return;
}

 

A regisztrációt tehetjük vele kötelezővé a pénztár oldalon

add_filter( 'woocommerce_checkout_fields', 'woo_filter_account_checkout_fields' );
 
function woo_filter_account_checkout_fields( $fields ) {
	$fields['account']['account_username']['required'] = true;
	$fields['account']['account_password']['required'] = true;
	$fields['account']['account_password-2']['required'] = true;

	return $fields;
}

 

Átnevezhetjük vele a product tab füleket

add_filter( 'woocommerce_product_tabs', 'woo_rename_tab', 98);
function woo_rename_tab($tabs) {

 $tabs['description']['title'] = 'More info';

 return $tabs;
}

 

Kilistázzuk a WooCommerce termék kategóriákat

$args = array(
    'number'     => $number,
    'orderby'    => $orderby,
    'order'      => $order,
    'hide_empty' => $hide_empty,
    'include'    => $ids
);

$product_categories = get_terms( 'product_cat', $args );

$count = count($product_categories);
 if ( $count > 0 ){
     echo "<ul>";
     foreach ( $product_categories as $product_category ) {
       echo '<li><a href="' . get_term_link( $product_category ) . '">' . $product_category->name . '</li>';
        
     }
     echo "</ul>";
 }

 

Lecserélhetjük a webshop oldalának title részét

add_filter( 'woocommerce_page_title', 'woo_shop_page_title');

function woo_shop_page_title( $page_title ) {
	
	if( 'Shop' == $page_title) {
		return "My new title";
	}
}

 

Cseréljük ki bármely widget címét

/*
 * Change widget title
 */
add_filter( 'widget_title', 'woo_widget_title', 10, 3);

function woo_widget_title( $title, $instance, $id_base ) {
	
	if( 'onsale' == $id_base) {
		return "My new title";
	}
}

 

A WooCommerce alapvető beállítását távolíthatjuk el ezzel

add_filter( 'woocommerce_catalog_settings', 'woo_remove_catalog_options' );

function woo_remove_catalog_options( $catalog ) {

	unset($catalog[23]); //Trim zeros (no) 
	unset($catalog[22]); //2 decimals 
	unset($catalog[21]); //decimal sep (.) 
	unset($catalog[20]); //thousand sep (,) 
	unset($catalog[19]); //currency position (left)	
	unset($catalog[18]); //currency position (left)	
	unset($catalog[5]); // ajax add to cart (no)	
	
	return $catalog; 
}

 

Cseréljük le a “feladó” email címet

function woo_custom_wp_mail_from() {
        global $woocommerce;
        return html_entity_decode( 'your@email.com' );
}
add_filter( 'wp_mail_from', 'woo_custom_wp_mail_from', 99 );

 

Visszafejtjük a feladó nevét a WooCommerce email-ben

function woo_custom_wp_mail_from_name() {
        global $woocommerce;
        return html_entity_decode( get_option( 'woocommerce_email_from_name' ) );
}
add_filter( 'wp_mail_from_name', 'woo_custom_wp_mail_from_name', 99 );

function woo_custom_wp_mail_from() {
        global $woocommerce;
        return html_entity_decode( get_option( 'woocommerce_email_from' ) );
}
add_filter( 'wp_mail_from_name', 'woo_custom_wp_mail_from_name', 99 );

 

A kiemelt termékeket tudjuk vele előszedni

function woo_get_featured_product_ids() {
	// Load from cache
	$featured_product_ids = get_transient( 'wc_featured_products' );

	// Valid cache found
	if ( false !== $featured_product_ids )
		return $featured_product_ids;

	$featured = get_posts( array(
		'post_type'      => array( 'product', 'product_variation' ),
		'posts_per_page' => -1,
		'post_status'    => 'publish',
		'meta_query'     => array(
			array(
				'key' 		=> '_visibility',
				'value' 	=> array('catalog', 'visible'),
				'compare' 	=> 'IN'
			),
			array(
				'key' 	=> '_featured',
				'value' => 'yes'
			)
		),
		'fields' => 'id=>parent'
	) );

	$product_ids = array_keys( $featured );
	$parent_ids  = array_values( $featured );
	$featured_product_ids = array_unique( array_merge( $product_ids, $parent_ids ) );

	set_transient( 'wc_featured_products', $featured_product_ids );

	return $featured_product_ids;
}

 

Egy egyedi mezőt tudunk a cím oldalhoz hozzáadni

// add fields to edit address page
function woo_add_edit_address_fields( $fields ) {

	$new_fields = array(
				'date_of_birth'     => array(
				'label'             => __( 'Date of birth', 'woocommerce' ),
				'required'          => false,
				'class'             => array( 'form-row' ),
			),
		);
		
	$fields = array_merge( $fields, $new_fields );
	
    return $fields;
	
}

add_filter( 'woocommerce_default_address_fields', 'woo_add_edit_address_fields' );

 

Gyorskódot tudunk vele megjeleníteni

function woocommerce_sale_products( $atts ) {

    global $woocommerce_loop;

    extract(shortcode_atts(array(
        'per_page'  => '12',
        'columns'   => '4',
        'orderby' => 'date',
        'order' => 'desc'
    ), $atts));

    $woocommerce_loop['columns'] = $columns;

    $args = array(
        'post_type' => 'product',
        'post_status' => 'publish',
        'ignore_sticky_posts'   => 1,
        'posts_per_page' => $per_page,
        'orderby' => $orderby,
        'order' => $order,
        'meta_query' => array(
            array(
                'key' => '_visibility',
                'value' => array('catalog', 'visible'),
                'compare' => 'IN'
            ),
            array(
                'key' => '_sale_price',
                'value' =>  0,
                'compare'   => '>',
                'type'      => 'NUMERIC'
            )
        )
    );
    query_posts($args);
    ob_start();
    woocommerce_get_template_part( 'loop', 'shop' );
    wp_reset_query();

    return ob_get_clean();
}

add_shortcode('sale_products', 'woocommerce_sale_products');

 

Van eladó termékünk, jelentessük meg

function woo_have_onsale_products() {
	
	global $woocommerce;

	// Get products on sale
	$product_ids_on_sale = array_filter( woocommerce_get_product_ids_on_sale() );

	if( !empty( $product_ids_on_sale ) ) {
		return true;
	} else {
		return false;
	}
	
}

// Example:
if( woo_have_onsale_products() ) {
	echo 'have onsale products';
} else {
	echo 'no onsale product';
}

 

Állítsuk be, hogy mennyi a minimális rendelési mennyiség a termékből

add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' );
function wc_minimum_order_amount() {
	global $woocommerce;
	$minimum = 50;
	if ( $woocommerce->cart->get_cart_total(); < $minimum ) {
           $woocommerce->add_error( sprintf( 'You must have an order with a minimum of %s to place your order.' , $minimum ) );
	}
}

 

Állítsuk be a sorrendet webshopunkban, ár-dátum-cím szerint

add_filter('woocommerce_default_catalog_orderby', 'custom_default_catalog_orderby');
 
function custom_default_catalog_orderby() {
     return 'date'; // Can also use title and price
}

 

Átirányítjuk a “kosárba” gombot a pénztár oldalra

add_filter ('add_to_cart_redirect', 'redirect_to_checkout');

function redirect_to_checkout() {
    global $woocommerce;
    $checkout_url = $woocommerce->cart->get_checkout_url();
    return $checkout_url;
}

 

Ha a rendelés befejeződött megadható lesz az email címzett

function woo_extra_email_recipient($recipient, $object) {
    $recipient = $recipient . ', your@email.com';
    return $recipient;
}
add_filter( 'woocommerce_email_recipient_customer_completed_order', 'woo_extra_email_recipient', 10, 2);

Lehet próbálkozni, felhasználni. Sőt, ha van neked is ilyen rövid kódod, küld nyugodtan, hogy más is fel tudja használni.

Forrás: wpexplorer

Fő profilom az Opencart és a WooCommerce webáruház készítés. Főként ezekről a webáruház motorokról írok, néha néha kitekintve a webáruházakon túlra. Webáruház készítés, fejlesztés, módosítás témában keress bátran elérhetőségeimen!

A * jelölt mezők kitöltése kötelező

Hasznos volt amit olvasott? Szeretne webáruházat?

Kérje ingyenes ajánlatunkat webáruház készítésre, módosításra, fejlesztésre!

Amennyiben szakmai felkészültségünk meggyőző, kérje ajánlatunkat webáruházának kivitelezésére!

Rólunk és írásainkról

Mi egy teljes körű szolgáltatást nyújtó ügynökség vagyunk, impozáns digitális marketing megoldásokat nyújtunk. A győztes megoldások és a tapasztalatok segítik nagyszerű eredményeinket honlapkészítés és webáruház készítés területén amiből itt infókat is olvashat.

    BESZÉLJÜK MEG, MOND EL VÉLEMÉNYED!

    Ellenörző kód * Time limit is exhausted. Please reload CAPTCHA.

      Segítünk, hogy webáruháza még jobb eredményeket érhessen el, a keresési eredmények még több látogatót hozhassanak.

      Írásainkból

      ELOLVASOM MIND
      AllWebáruház
      facebook live forgalom növelés

      Filléres trükk a webáruházad forgalomnövelésére – Facebook Live

      Ha 2016 és tartalommarketing, akkor a Facebook live-ot tekinthetjük az elmúlt év egyik legnagyobb dobásának. Már 2017-et írunk, mégis, alig…
      Tovább olvasom
      webáruház biztonság

      Védekezés Brute Force támadások ellen – II. rész

      Korábbi cikkünkben a támadás megelőzéséről volt szó, most viszont adunk néhány tűzoltó taktikát arra az esetre, ha már bekövetkezett a…
      Tovább olvasom
      Brute force webáruházhoz

      Védekezés Brute Force támadások ellen – 1. rész

      Napjaink legnépszerűbb tartalomkezelő rendszerei számos területen könnyíti meg életünket könnyű, akár informatikához egyáltalán nem értő felhasználók számára is. A népszerűségnek…
      Tovább olvasom