✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Kuidas lisada kohandatud lõpp-punkte WooCommerce’i lehele Minu konto

12

Selles postituses kirjeldatakse, kuidas lisada kohandatud lõpp- punkte WooCommerce’i lehele "Minu konto". Saame selle teha kahel viisil juurdepääsetavaks; kas eraldi kohandatud vahekaardina või iga tellimuse nupuna vahekaardil "Tellimused".

WooCommerce’i leht "Minu konto" kasutab lõpp-punktide jaoks WordPressi sisseehitatud funktsioone, mis muudab oma lõpp-punktide kohandamise või lisamise lihtsaks. Kui te pole lõpp-punktidega kursis, soovitan lugeda minu postitust, milles kirjeldatakse üksikasjalikult, kuidas WordPressis kohandatud lõpp-punkte lisada.

See, kuidas muudate oma kohandatud lõpp-punkti kasutajale “Minu konto" kaudu juurdepääsetavaks, sõltub täielikult teie veebipoe vajadustest. Kui soovite lisateabe saamiseks lihtsalt üldist lehte, võite lisada selle lehe eraldi vahekaardina. Kui soovite, et teie lõpp-punkt oleks seotud iga tellimusega, peate lisama oma lõpp-punkti vahekaardil „Tellimused” igale tellimuse reale. Selles postituses vaatleme mõlemat meetodit.

Kohandatud vahekaardi ja lõpp-punkti lisamine jaotisesse „Minu konto”

Oletame näiteks, et meie veebipood müüb tarkvara ja me vajame kohta, kus näidata oma klientide litsentsivõtmeid nende lehel “Minu konto”. Lisame kohandatud vahekaardi „Litsentsivõtmed”, mis peaks väljastama kõik selle kasutaja jaoks registreeritud kehtivad litsentsivõtmed.

Kohandatud lõpp-punkti lisamine

Oma teema functions.phpvõi pistikprogrammi koodis lisame esmalt kohandatud lõpp-punkti, kasutades add_rewrite_endpoint(). Selle esimese argumendina pakume ainulaadset võtit. Allolevas näites nimetasin lõpp-punkti " license-keys".

add_action('init', function() { add_rewrite_endpoint('license-keys', EP_ROOT | EP_PAGES); });

Pidage meeles, et WordPress lisab kasutamisel automaatselt meie võtme päringuvarsidesse add_rewrite_endpoint(), seega pole vaja filtreerida query_vars.

Kui leiate veateate "404 ei leitud", peate oma püsilinke värskendama. Selleks avage Seaded> Püsilingid ja klõpsake lihtsalt nuppu Salvesta. Alati, kui teeme püsilinkides või lõpp-punktides muudatusi, peame seda tegema.

Kohandatud vahekaardi lisamine

Järgmine samm on vahekaardi lisamine lehe „Minu konto” vahekaartidele. Teeme seda filtriga woocommerce_account_menu_items. Filtri pakutav massiiv sisaldab kõiki tabeldusklahve ja neile vastavat silti.

Saate lihtsalt lisada oma vahekaardi massiivi lõppu, kuid kui soovite rohkem juhtida seda, kus teie vahekaart peaks ilmuma, peate massiivi PHP funktsioonide abil manipuleerima. Ülaltoodud näites soovin seda lõpus, kuid enne vahekaarti „Logi välja”. Seega võtan välja vahekaardi „Logi välja”, sisestan oma vahekaardi ja seejärel panen tagasi vahekaardi „Logi välja”.

add_filter('woocommerce_account_menu_items', function($items) { $logout = $items['customer-logout']; unset($items['customer-logout']); $items['license-keys'] = __('License keys', 'txtdomain'); $items['customer-logout'] = $logout; return $items; });

Kui värskendate oma Minu konto lehte kohe, peaksite nägema oma vahekaarti enne „Logi välja”. Sellel klõpsamine viib teid URL-ile " <example.com>/my-account/license-keys/". Vahekaardil klõpsates ei näe te aga midagi muutust. Seda seetõttu, et me pole määratlenud, mida väljastada. See on meie järgmine samm.

Kohandatud vahekaardi sisu renderdamine

WooCommerce pakub konksu woocommerce_account_<endpoint key>_endpointsisu väljastamiseks jaotises „Minu konto”, kus asendate oma kohandatud lõpp-punkti võtmega. Meie näites oleks õige konks woocommerce_account_license-keys_endpoint.

add_action('woocommerce_account_license-keys_endpoint', function() { _e('Your license keys', 'txtdomain'); });

Vahekaardi tegeliku väljundi osas on see täielikult teie otsustada. Võite teha päringu, hankida teavet ja seejärel väljastada. Siiski on soovitatav kasutada HTML-i väljastamiseks malle selle asemel, et väljastada kogu HTML-väljund otse meie funktsiooni sees. WooCommerce pakub mallidele suurepäraseid funktsioone, seega kasutame seda.

Kasutades wc_get_template()saame pakkuda kohandatud malli (see ei pea olema üks WooCommerce’i mallidest). Teise argumendina saame määratleda muutujad, mis edastatakse mallifaili. Järgides WooCommerce’i väljakujunenud struktuuri, loome kohandatud WooCommerce’i malli, mille me call license-keys.phpkaustame <theme>/woocommerce/myaccount/.

Jätkake ja looge tühi fail <theme>/woocommerce/myaccount/license-keys.php. Selle sees saate määrata oma kohandatud vahekaardi väljundi. Samuti on meil juurdepääs kõigile muutujatele, mille massiivile edastasime wc_get_template(). Nii et meie puhul on $licensesmuutuja saadaval ja täidetud teabega, mille me oma lõpp-punkti funktsioonist edastasime. Saate edastada nii palju muutujaid, kui vajate.

Lõpp-punkti ja kohandatud nupu lisamine igale tellimusele lehel "Minu konto".

Jätkame sama ülaltoodud näitega; eeldades, et teie veebipood müüb tarkvara ja teil on vaja kuskil näidata kliendi litsentsivõtmeid. Kuid selle asemel, et lisada nende kõigi kuvamiseks kohandatud vahekaart, soovite võib-olla pigem näidata ühe konkreetse tellimusega seotud litsentsivõtmeid? Võiksime lisada Minu konto tellimuste ülevaates valiku „Vaata” kõrvale kohandatud nupu:

Kuidas lisada kohandatud lõpp-punkte WooCommerce'i lehele Minu konto

Alustuseks teeme sama, mida tegime eespool: kohandatud lõpp-punkti registreerimine:

Registreerige kohandatud lõpp-punkt

add_action('init', function() { add_rewrite_endpoint('license-keys', EP_ROOT | EP_PAGES); });

Ärge unustage püsivaid linke loputada (avage Seaded> Püsilingid ja klõpsake nuppu Salvesta)!

Lisa kohandatud toiming (ja nupp)

Järgmine samm on nupu lisamine filtri abil woocommerce_my_account_my_orders_actions. Selle filtri teise argumendina saate tellimuse objekti. See on väga kasulik; tahame kontrollida, kas tellimus on täidetud ja selle eest tasutud, et me ei näitaks maksmata või tühistatud tellimuste litsentsivõtmeid. Tellimuse objektiga saame kätte ka tellimuse ID, mis on suure tõenäosusega vajalik selles järjekorras olevate toodete litsentsivõtmete päringu tegemiseks. Allolevas koodis kontrollin lihtsalt, kas tellimuse olek on lõpetatud või mitte. Tõenäoliselt peate lisama oma koodi, et kontrollida, kas tellimuse kohta on kuvamiseks litsentsivõtmeid või mitte.

Kohandatud toimingu lisamiseks peame andma unikaalse võtme ja massiivi, millel on iseenesestmõistetavad väärtused " url" ja " name" jaoks. URL-i puhul kasutame lõpp-punkti URL-i tagastamiseks WordPressi funktsiooni: wc_get_endpoint_url(). Kuna peame edastama ka tellimuse ID, määrame selle funktsiooni teiseks argumendiks tellimuse ID, mille tulemuseks on järgmine URL: <example.com>/my-account/license-keys/<order ID>/.

See peaks lisama iga täidetud tellimuse jaoks uue nupu:

Kuidas lisada kohandatud lõpp-punkte WooCommerce'i lehele Minu konto

Nüüd vajame ainult malli, mida lõpp-punkti jaoks näidata license-keys.

Lõpp-punkti renderdamine

Lõpp-punktid töötavad WordPressis nii, et kõik, mis tuleb pärast lõpp-punkti, on selle päringumuutuja väärtus. või teisisõnu; kui külastame näiteks URL-i, <example.com>/my-account/license-keys/204/mida saame kasutada get_query_var('license-keys')tellimuse ID hankimiseks; 204.

Meie kohandatud lõpp-punkti sisu väljastamiseks ühendame selle külge woocommerce_account_<endpoint key>_endpoint, mis meie puhul oleks woocommerce_account_license-keys_endpoint. Selle funktsiooni sees saame kasutada get_query_var()tellimuse ID hankimiseks ja selle päringuga mis tahes litsentsivõtmete tellimust.

Teie kohandatud malli „ myaccount/license-keys.php” tegelik HTML-väljund sõltub täielikult teie vajadustest. Arvatavasti oleksite kasutanud tellimuse ID-d, et koguda litsentsivõtmed mõnda massiivi ja edastada see ilusa väljundi saamiseks mallile. Ülaltoodud koodis edastan ka tellimuse ID-d, nii et see on $order_idmalli sees juurdepääsetav (nt ilusa pealkirja "Tellimuse nr 204 litsentsivõtmed" väljastamiseks).

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem