Code WooCommerce WordPress

Si të Zëvendësoni Butonin “Add to Cart” me “Request Quote” bazuar në Vendndodhjen e Vizitorit në WooCommerce

WooCommerce është një shtojcë e fuqishme dhe fleksibël për krijimin e një dyqani online, por ndonjëherë ju nevojitet të modifikoni funksionalitetin e tij të paracaktuar për t’iu përshtatur kërkesave specifike të biznesit. Një nevojë e tillë mund të jetë heqja e butonit “Shto në Shportë” për disa përdorues, bazuar në vendndodhjen e tyre, dhe zëvendësimi me butonin “Kërko Ofertë”. Kjo është veçanërisht e dobishme nëse keni një model biznesi B2B ose nëse ju duhet të trajtoni çmime të veçanta për disa vende.

Në këtë artikull, do të shpjegoj një fragment të thjeshtë kodi që heq butonin “Shto në Shportë” dhe e zëvendëson atë me butonin “Kërko Ofertë”, bazuar në gjeolokacionin e përdoruesit. Kjo mund të jetë e dobishme për bizneset që ofrojnë oferta në vend të blerjeve direkte për përdoruesit në disa rajone.

Shpjegimi i Kodit

Më poshtë është kodi i plotë që kryen funksionalitetin e dëshiruar. Le të shpjegojmë hap pas hapi:


if ( is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
	// WooCommerce plugin është aktiv

	function replace_add_to_cart_button() {
		// Output butonin "Kërko Ofertë"
		echo '<a href="/contatct/" class="request-quote-button single_add_to_cart_button button alt wp-element-button">Kërko Ofertë</a>';
		return;
	}

	if (! class_exists( 'WC_Geolocation' ) ) {
		require_once( WP_PLUGIN_DIR . '/woocommerce/includes/class-wc-geolocation.php' );
	}
	// Krijo një instancë të klasës WC_Geolocation
	$geo_instance  = new WC_Geolocation();

	// Merr gjeodokumentet e vizitorëve
	$visitor_location = $geo_instance->geolocate_ip();
	$visitor_country = $visitor_location['country'] ?? false;

	// Lista e vendeve për të shfaqur butonin e ofertës në vend të atij të shportës
	$countries = array("GB", "CH", "AL");

	// Kontrollo nëse vizitori është nga një prej vendeve të përcaktuara
	if ( in_array( $visitor_country, $countries ) ) {
				
		// Heq butonin "Shto në Shportë"
		add_filter( 'woocommerce_is_purchasable', '__return_false' );

		// Shto butonin "Kërko Ofertë" në faqet e produktit dhe të dyqanit
		add_action( 'woocommerce_after_shop_loop_item', 'replace_add_to_cart_button', 20 );
		add_action( 'woocommerce_single_product_summary', 'replace_add_to_cart_button', 30 );
	}
}

Shpjegimi Hap pas Hapi

1. Kontrollo nëse WooCommerce është Aktiv

Pjesa e parë e kodit kontrollon nëse WooCommerce është aktiv duke përdorur funksionin is_plugin_active(). Kjo siguron që kodi do të ekzekutohet vetëm nëse WooCommerce është i instaluar dhe aktiv.


if ( is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
	// WooCommerce plugin është aktiv
}

2. Krijimi i Butonit “Kërko Ofertë”

Më pas, ne përcaktojmë funksionin replace_add_to_cart_button(). Ky funksion jep HTML-in për butonin “Kërko Ofertë”, i cili lidhet me faqen e kontaktit të faqes suaj.


function replace_add_to_cart_button() {
	echo '<a href="/contatti/" class="request-quote-button single_add_to_cart_button button alt wp-element-button">Kërko Ofertë</a>';
}

3. Gjeolokacioni i Përdoruesit

Aktivizimi i Integrimit të Gjeolokacionit MaxMind

Për të siguruar gjeolokacion të saktë për këtë funksionalitet, do t’ju duhet të aktivizoni shërbimin e gjeolokacionit MaxMind në WooCommerce. MaxMind ofron të dhëna të detajuara gjeolokacioni që WooCommerce përdor për të identifikuar vendndodhjen e përdoruesve bazuar në adresën e tyre IP. Ja si ta konfiguroni:

1. Shkarkoni Bazën e të Dhënave MaxMind Geolocation

WooCommerce kërkon bazën e të dhënave MaxMind për të kryer gjeolokacion. Ndiqni hapat më poshtë për ta integruar atë:

  • Shkoni në panelin tuaj të WordPress-it dhe navigoni te WooCommerce > Settings.
  • Klikoni te skeda Integration dhe gjeni seksionin MaxMind Geolocation.
  • Ju nevojitet një çelës licence MaxMind për të përdorur bazën e të dhënave. Për të marrë një, regjistrohuni në MaxMind, dhe ndiqni udhëzimet për të gjeneruar çelësin tuaj të licencës.
2. Shtoni Çelësin e Licencës MaxMind
  • Pasi të keni marrë çelësin e licencës, kthehuni te WooCommerce > Settings > Integration > MaxMind Geolocation.
  • Futni çelësin e licencës në fushën e duhur dhe ruani ndryshimet.
  • WooCommerce do të shkarkojë dhe përditësojë automatikisht bazën e të dhënave MaxMind rregullisht.
3. Aktivizoni Gjeolokacionin
  • Shkoni te WooCommerce > Settings > General.
  • Nën Default Customer Location, zgjidhni Geolocate (with caching support) për të aktivizuar funksionalitetin e gjeolokacionit në të gjithë dyqanin tuaj.

Kjo konfigurim siguron që WooCommerce të mund të detektojë me saktësi vendndodhjen e përdoruesit, duke lejuar kodin tuaj të shfaqë butonin “Kërko Ofertë” për përdoruesit nga vende të caktuara. Për më shumë detaje, shikoni udhëzuesin zyrtar të Integrimit të Gjeolokacionit MaxMind.

WooCommerce ofron një veçori të gjeolokacionit përmes klasës WC_Geolocation. Në kod, ne krijojmë një instancë të kësaj klase dhe e përdorim për të marrë vendin e përdoruesit bazuar në adresën e tyre IP.


if (! class_exists( 'WC_Geolocation' ) ) {
	require_once( WP_PLUGIN_DIR . '/woocommerce/includes/class-wc-geolocation.php' );
}

$geo_instance  = new WC_Geolocation();
$visitor_location = $geo_instance->geolocate_ip();
$visitor_country = $visitor_location['country'] ?? false;

4. Përcaktimi i Vendeve për të Shfaqur Butonin “Kërko Ofertë”

Krijojmë një varg të kodeve të shteteve ku duam të zëvendësojmë butonin “Shto në Shportë” me butonin “Kërko Ofertë”. Për shembull, kodi përfshin Mbretërinë e Bashkuar (GB), Zvicrën (CH), dhe Shqipërinë (AL).


$countries = array("GB", "CH", "AL");

5. Zëvendësimi i Butonit “Shto në Shportë”

Nëse vendi i përdoruesit përputhet me një nga vendet e përcaktuara, kodi heq butonin “Shto në Shportë” duke përdorur filtrin woocommerce_is_purchasable. Ky filtër kthen false, duke e bërë të papërdorshëm për përdoruesit nga vendet e caktuara.


if ( in_array( $visitor_country, $countries ) ) {
	add_filter( 'woocommerce_is_purchasable', '__return_false' );
}

6. Shtimi i Butonit “Kërko Ofertë” në Faqet e Produkteve

Së fundmi, funksioni replace_add_to_cart_button() lidhet me veprimet e WooCommerce për të siguruar që butoni të shfaqet si në faqen e dyqanit, ashtu edhe në faqen e produktit të vetëm.


add_action( 'woocommerce_after_shop_loop_item', 'replace_add_to_cart_button', 20 );
add_action( 'woocommerce_single_product_summary', 'replace_add_to_cart_button', 30 );

Ku ta Shtoni këtë Kod?

Për të siguruar që ky kod të ekzekutohet siç duhet në faqen tuaj të WordPress-it, do t’ju duhet ta shtoni në skedarin functions.php të temës ose të krijoni një shtojcë të personalizuar. Më poshtë janë dy opsione për ku mund ta vendosni këtë kod:

Opsioni 1: Shto në functions.php të Temës Suaj Child

Mënyra më e lehtë për të shtuar funksionalitet të personalizuar si ky është vendosja e kodit në skedarin functions.php të temës suaj child. Ja si ta bëni këtë:

  1. Shkoni te paneli juaj i WordPress-it, navigoni te Appearance > Theme File Editor.
  2. Në redaktorin e skedarëve, gjeni skedarin functions.php në temën tuaj child dhe hapeni atë.
  3. Ngjisni kodin në fund të skedarit, duke u siguruar që është jashtë çdo etikete ekzistuese PHP.
  4. Ruani ndryshimet.

Shënim: Gjithmonë është ide e mirë të përdorni një temë child për personalizime, në mënyrë që ndryshimet tuaja të mos humbasin gjatë përditësimeve të temës. Nëse nuk keni një temë child, mund të krijoni një ose të përdorni një shtojcë për t’ju ndihmuar.

Opsioni 2: Krijoni një Shtojcë të Personalizuar

Nëse preferoni të mbani funksionalitetin tuaj të personalizuar të ndarë nga tema, krijimi i një shtojce të personalizuar është një opsion i shkëlqyer. Ndiqni këto hapa për të krijuar një shtojcë të thjeshtë:

  1. Në instalimin tuaj të WordPress-it, navigoni te direktoria wp-content/plugins/ përmes FTP ose menaxherit të skedarëve të hostit tuaj.
  2. Krijoni një dosje të re dhe emërtojeni diçka si custom-woocommerce-mods.
  3. Brenda kësaj dosje, krijoni një skedar të ri dhe emërtojeni custom-woocommerce-mods.php.

Hapni skedarin dhe shtoni kodin e mëposhtëm në krye për të përcaktuar shtojcën:


		<?php
		/**
		 * Plugin Name: Modifikime të Personalizuara për WooCommerce
		 * Përshkrimi: Zëvendëson butonin Shto në Shportë me Kërko Ofertë bazuar në vendndodhjen e përdoruesit.
		 * Version: 1.0
		 * Autor: Emri juaj
		 */
		
  1. Pas kësaj header-i të shtojcës, ngjisni fragmentin e kodit të ofruar më parë.
  2. Ruani skedarin dhe pastaj shkoni te paneli juaj i WordPress-it dhe aktivizoni shtojcën nën Plugins > Installed Plugins.

Kur ta Përdorni Këtë Zgjidhje

Kjo qasje është e dobishme në disa skenarë:

  • Për bizneset që operojnë në rajone të ndryshme dhe preferojnë të trajtojnë çmimet manualisht ose të ofrojnë oferta bazuar në vendndodhjen e përdoruesit.
  • Nëse disa vende kanë rregulla specifike të taksave ose transportit që e bëjnë të komplikuar shitjen direkte online.
  • Për kompanitë që duan të ofrojnë çmime të personalizuara për klientët B2B ose për klientët specialë bazuar në vendin e tyre.

Personalizimi i Kodit

Ju mund ta personalizoni këtë kod lehtësisht për të përmbushur nevojat tuaja:

  • Ndryshoni vargun $countries për të përfshirë ose përjashtuar vende specifike ku dëshironi të shfaqni butonin “Kërko Ofertë”.
  • Modifikoni lidhjen href në funksionin replace_add_to_cart_button() për ta drejtuar në një faqe tjetër kontakti ose kërkese në faqen tuaj.
  • Stilizoni butonin “Kërko Ofertë” duke përdorur klasa CSS të personalizuara nëse është e nevojshme.
Chat on WhatsApp Chat on WhatsApp