WordPress – WooCommerce – Termék duplázódás a kosárban

Egy olyan hibába ütköztem, hogy ha kosárba teszek valamit, majd a kosárba megyek, akkor megduplázza azt a terméket amit utoljára a kosárba tettem.

A Woo weboldalán találtam rá a hiba okára:

Double add to cart issues

Check your page source for any empty background-image (css) properties, or img and link tags with empty src/href attributes. These can cause pages to load multiple times.

Mivel belenyúltam több helyen is a témába HTML és CSS szinten, így tudtam, hogy én hibáztam, de nem találtam meg a hibát és mivel nem olyan sok módosítás volt, így letöröltem a témát. Feltettem az eredetit és voilà jó is lett.

Csak ügyesen az üres attribútumokkal 🙂

WordPress – Egyedi Widget

Ha olyan problémába ütközünk, hogy szükségünk van egy widgetre, de nem az alapértelmezett widget barokat szeretnénk használni a megjelenítésre, akkor bizony bele kell nyúlnunk a kódokba.

Szerencsére nagyon egyszerű dolgunk van.

Az alábbi kódot szúrjuk be a function.php-be

if ( function_exists('register_sidebar') ) {
	register_sidebar(array(
		'name' => 'Custom Sidebar',
		'id' => 'custom-sidebar',
		'description' => 'Sidebar below Header image',
		'before_widget' => '
	<li id="%1$s">',
		'after_widget' => '</li>
',
		'before_title' => '
<h2>',
		'after_title' => '</h2>
',
	));
}

Ezzel már láthatóvá válik a Widgetek között a Custom Sidebar névre hallgató Widget barunk.

Ezek után már csak annyi dolgunk van, hogy beillesztjük oda az alábbi kódot, ahol meg szeretnék jeleníteni azt a bizonyos widget bar-t.

<div id="custom-sidebar">
<ul>
      <?php
      if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('custom-sidebar') ) :
      endif; ?></ul>
<div style="clear:both"></div>
</div>

A style.css módosítását már rátok bízom, itt egy példa:

div#custom-sidebar ul {
	line-height: 20px;
}

div#custom-sidebar li.widget {
	width: 300px;
	margin:0 0 15px 20px;
	float:left;
}

div#custom-sidebar li.widget h2 {
	margin-bottom: 15px;
}

WooCommerce – Árak csak vásárlóknak

A kód beillesztésével a shop főoldalon és terméknézetben, csak a Vásárló (Customer) szerepkörrel rendelkezők látják az árakat.
Aki regisztrál az oldalra alapértelmezetten Feliratkozó (Subscriber) szerepkörbe kerül.

Hasznos kiegészítő nagykerek számára.

A kódot a téma mappájában lévő function.php fájlba kell bemásolni.


add_filter('woocommerce_get_price_html','members_only_price');
function members_only_price($price){

if(is_user_logged_in()){

	global $wp_roles;

	foreach ( $wp_roles->role_names as $role => $name ) :

		if ( current_user_can( $role ) )
		{
			if ($role == 'customer')
				return $price;
			else{
				echo 'A fiókod még nem erősítettük meg.';
				remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
				remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
				remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );}
		}
		
	endforeach;
}
else {
	remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
	remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
	remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );}
}