{"id":233610,"date":"2023-02-18T15:42:00","date_gmt":"2023-02-18T12:42:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233610"},"modified":"2022-11-11T00:37:52","modified_gmt":"2022-11-10T21:37:52","slug":"kuidas-lisada-kohandatud-lopp-punkte-woocommercei-lehele-minu-konto","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/kuidas-lisada-kohandatud-lopp-punkte-woocommercei-lehele-minu-konto\/","title":{"rendered":"Kuidas lisada kohandatud l\u00f5pp-punkte WooCommerce&#8217;i lehele Minu konto"},"content":{"rendered":"\n<p>Selles postituses kirjeldatakse, kuidas lisada kohandatud l\u00f5pp- <a href=\"https:\/\/woocommerce.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">punkte WooCommerce&#8217;i<\/a> lehele &quot;Minu konto&quot;. Saame selle teha kahel viisil juurdep\u00e4\u00e4setavaks; kas eraldi kohandatud vahekaardina v\u00f5i iga tellimuse nupuna vahekaardil &quot;Tellimused&quot;.<\/p>\n<p>WooCommerce&#8217;i leht &quot;Minu konto&quot; kasutab l\u00f5pp-punktide jaoks WordPressi sisseehitatud funktsioone, mis muudab oma l\u00f5pp-punktide kohandamise v\u00f5i lisamise lihtsaks. Kui te pole l\u00f5pp-punktidega kursis, soovitan lugeda minu postitust, milles kirjeldatakse \u00fcksikasjalikult, <a href=\"https:\/\/awhitepixel.com\/blog\/adding-custom-url-endpoints-with-wordpress-rewrite-api\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">kuidas WordPressis kohandatud l\u00f5pp-punkte lisada<\/a>.<\/p>\n<p>See, kuidas muudate oma kohandatud l\u00f5pp-punkti kasutajale &#8220;Minu konto&quot; kaudu juurdep\u00e4\u00e4setavaks, s\u00f5ltub t\u00e4ielikult teie veebipoe vajadustest. Kui soovite lisateabe saamiseks lihtsalt \u00fcldist lehte, v\u00f5ite lisada selle lehe eraldi vahekaardina. Kui soovite, et teie l\u00f5pp-punkt oleks seotud iga tellimusega, peate lisama oma l\u00f5pp-punkti vahekaardil \u201eTellimused&#8221; igale tellimuse reale. Selles postituses vaatleme m\u00f5lemat meetodit.<\/p>\n<h2>Kohandatud vahekaardi ja l\u00f5pp-punkti lisamine jaotisesse \u201eMinu konto&#8221;<\/h2>\n<p>Oletame n\u00e4iteks, et meie veebipood m\u00fc\u00fcb tarkvara ja me vajame kohta, kus n\u00e4idata oma klientide litsentsiv\u00f5tmeid nende lehel &#8220;Minu konto&#8221;. Lisame kohandatud vahekaardi \u201eLitsentsiv\u00f5tmed&#8221;, mis peaks v\u00e4ljastama k\u00f5ik selle kasutaja jaoks registreeritud kehtivad litsentsiv\u00f5tmed.<\/p>\n<h3>Kohandatud l\u00f5pp-punkti lisamine<\/h3>\n<p>Oma teema <code>functions.php<\/code>v\u00f5i pistikprogrammi koodis lisame esmalt kohandatud l\u00f5pp-punkti, kasutades <code>add_rewrite_endpoint()<\/code>. Selle esimese argumendina pakume ainulaadset v\u00f5tit. Allolevas n\u00e4ites nimetasin l\u00f5pp-punkti &quot; <code>license-keys<\/code>&quot;.<\/p>\n<pre><code>add_action('init', function() {\n    add_rewrite_endpoint('license-keys', EP_ROOT | EP_PAGES);\n});<\/code><\/pre>\n<p>Pidage meeles, et WordPress lisab kasutamisel automaatselt meie v\u00f5tme p\u00e4ringuvarsidesse <code>add_rewrite_endpoint()<\/code>, seega pole vaja filtreerida <code>query_vars<\/code>.<\/p>\n<p>Kui leiate veateate &quot;404 ei leitud&quot;, peate oma p\u00fcsilinke v\u00e4rskendama. Selleks avage Seaded&gt; P\u00fcsilingid ja kl\u00f5psake lihtsalt nuppu Salvesta. Alati, kui teeme p\u00fcsilinkides v\u00f5i l\u00f5pp-punktides muudatusi, peame seda tegema.<\/p>\n<h3>Kohandatud vahekaardi lisamine<\/h3>\n<p>J\u00e4rgmine samm on vahekaardi lisamine lehe \u201eMinu konto&#8221; vahekaartidele. Teeme seda filtriga <code>woocommerce_account_menu_items<\/code>. Filtri pakutav massiiv sisaldab k\u00f5iki tabeldusklahve ja neile vastavat silti.<\/p>\n<p>Saate lihtsalt lisada oma vahekaardi massiivi l\u00f5ppu, kuid kui soovite rohkem juhtida seda, kus teie vahekaart peaks ilmuma, peate massiivi PHP funktsioonide abil manipuleerima. \u00dclaltoodud n\u00e4ites soovin seda l\u00f5pus, kuid enne vahekaarti \u201eLogi v\u00e4lja&#8221;. Seega v\u00f5tan v\u00e4lja vahekaardi \u201eLogi v\u00e4lja&#8221;, sisestan oma vahekaardi ja seej\u00e4rel panen tagasi vahekaardi \u201eLogi v\u00e4lja&#8221;.<\/p>\n<pre><code>add_filter('woocommerce_account_menu_items', function($items) {\n    $logout = $items['customer-logout'];\n    unset($items['customer-logout']);\n    $items['license-keys'] = __('License keys', 'txtdomain');\n    $items['customer-logout'] = $logout;\n    return $items;\n});<\/code><\/pre>\n<p>Kui v\u00e4rskendate oma Minu konto lehte kohe, peaksite n\u00e4gema oma vahekaarti enne \u201eLogi v\u00e4lja&#8221;. Sellel kl\u00f5psamine viib teid URL-ile &quot; <code>&lt;example.com&gt;\/my-account\/license-keys\/<\/code>&quot;. Vahekaardil kl\u00f5psates ei n\u00e4e te aga midagi muutust. Seda seet\u00f5ttu, et me pole m\u00e4\u00e4ratlenud, mida v\u00e4ljastada. See on meie j\u00e4rgmine samm.<\/p>\n<h3>Kohandatud vahekaardi sisu renderdamine<\/h3>\n<p>WooCommerce pakub konksu <code>woocommerce_account_&lt;endpoint key&gt;_endpoint<\/code>sisu v\u00e4ljastamiseks jaotises \u201eMinu konto&#8221;, kus asendate oma kohandatud l\u00f5pp-punkti v\u00f5tmega. Meie n\u00e4ites oleks \u00f5ige konks <code>woocommerce_account_license-keys_endpoint<\/code>.<\/p>\n<pre><code>add_action('woocommerce_account_license-keys_endpoint', function() {\n    _e('Your license keys', 'txtdomain');\n});<\/code><\/pre>\n<p>Vahekaardi tegeliku v\u00e4ljundi osas on see t\u00e4ielikult teie otsustada. V\u00f5ite teha p\u00e4ringu, hankida teavet ja seej\u00e4rel v\u00e4ljastada. Siiski on soovitatav kasutada HTML-i v\u00e4ljastamiseks malle selle asemel, et v\u00e4ljastada kogu HTML-v\u00e4ljund otse meie funktsiooni sees. WooCommerce pakub mallidele suurep\u00e4raseid funktsioone, seega kasutame seda.<\/p>\n<p>Kasutades <code>wc_get_template()<\/code>saame pakkuda kohandatud malli (see ei pea olema \u00fcks WooCommerce&#8217;i mallidest). Teise argumendina saame m\u00e4\u00e4ratleda muutujad, mis edastatakse mallifaili. J\u00e4rgides WooCommerce&#8217;i v\u00e4ljakujunenud struktuuri, loome kohandatud WooCommerce&#8217;i malli, mille me <code>call license-keys.php<\/code>kaustame <code>&lt;theme&gt;\/woocommerce\/myaccount\/<\/code>.<\/p>\n<pre><code>add_action('woocommerce_account_license-keys_endpoint', function() {\n    $licenses = [];  \/\/ Replace with function to return licenses for current logged in user\n    wc_get_template('myaccount\/license-keys.php', [\n        'licenses' =&gt; $licenses\n    ]);\n});<\/code><\/pre>\n<p>J\u00e4tkake ja looge t\u00fchi fail <code>&lt;theme&gt;\/woocommerce\/myaccount\/license-keys.php<\/code>. Selle sees saate m\u00e4\u00e4rata oma kohandatud vahekaardi v\u00e4ljundi. Samuti on meil juurdep\u00e4\u00e4s k\u00f5igile muutujatele, mille massiivile edastasime <code>wc_get_template()<\/code>. Nii et meie puhul on <code>$licenses<\/code>muutuja saadaval ja t\u00e4idetud teabega, mille me oma l\u00f5pp-punkti funktsioonist edastasime. Saate edastada nii palju muutujaid, kui vajate.<\/p>\n<h2>L\u00f5pp-punkti ja kohandatud nupu lisamine igale tellimusele lehel &quot;Minu konto&quot;.<\/h2>\n<p>J\u00e4tkame sama \u00fclaltoodud n\u00e4itega; eeldades, et teie veebipood m\u00fc\u00fcb tarkvara ja teil on vaja kuskil n\u00e4idata kliendi litsentsiv\u00f5tmeid. Kuid selle asemel, et lisada nende k\u00f5igi kuvamiseks kohandatud vahekaart, soovite v\u00f5ib-olla pigem n\u00e4idata \u00fche konkreetse tellimusega seotud litsentsiv\u00f5tmeid? V\u00f5iksime lisada Minu konto tellimuste \u00fclevaates valiku \u201eVaata&#8221; k\u00f5rvale kohandatud nupu:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152793-61e4fade776a4.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152793-61e4fade776a4.png\" alt=\"Kuidas lisada kohandatud l\u00f5pp-punkte WooCommerce&#039;i lehele Minu konto\" ><\/a><\/p>\n<p>Alustuseks teeme sama, mida tegime eespool: kohandatud l\u00f5pp-punkti registreerimine:<\/p>\n<h3>Registreerige kohandatud l\u00f5pp-punkt<\/h3>\n<pre><code>add_action('init', function() {\n    add_rewrite_endpoint('license-keys', EP_ROOT | EP_PAGES);\n});<\/code><\/pre>\n<p>\u00c4rge unustage p\u00fcsivaid linke loputada (avage Seaded&gt; P\u00fcsilingid ja kl\u00f5psake nuppu Salvesta)!<\/p>\n<h3>Lisa kohandatud toiming (ja nupp)<\/h3>\n<p>J\u00e4rgmine samm on nupu lisamine filtri abil <code>woocommerce_my_account_my_orders_actions<\/code>. Selle filtri teise argumendina saate tellimuse objekti. See on v\u00e4ga kasulik; tahame kontrollida, kas tellimus on t\u00e4idetud ja selle eest tasutud, et me ei n\u00e4itaks maksmata v\u00f5i t\u00fchistatud tellimuste litsentsiv\u00f5tmeid. Tellimuse objektiga saame k\u00e4tte ka tellimuse ID, mis on suure t\u00f5en\u00e4osusega vajalik selles j\u00e4rjekorras olevate toodete litsentsiv\u00f5tmete p\u00e4ringu tegemiseks. Allolevas koodis kontrollin lihtsalt, kas tellimuse olek on l\u00f5petatud v\u00f5i mitte. T\u00f5en\u00e4oliselt peate lisama oma koodi, et kontrollida, kas tellimuse kohta on kuvamiseks litsentsiv\u00f5tmeid v\u00f5i mitte.<\/p>\n<p>Kohandatud toimingu lisamiseks peame andma unikaalse v\u00f5tme ja massiivi, millel on iseenesestm\u00f5istetavad v\u00e4\u00e4rtused &quot; <code>url<\/code>&quot; ja &quot; <code>name<\/code>&quot; jaoks. URL-i puhul kasutame l\u00f5pp-punkti URL-i tagastamiseks WordPressi funktsiooni: <code>wc_get_endpoint_url()<\/code>. Kuna peame edastama ka tellimuse ID, m\u00e4\u00e4rame selle funktsiooni teiseks argumendiks tellimuse ID, mille tulemuseks on j\u00e4rgmine URL: <code>&lt;example.com&gt;\/my-account\/license-keys\/&lt;order ID&gt;\/<\/code>.<\/p>\n<pre><code>add_filter('woocommerce_my_account_my_orders_actions', function($actions, $order) {\n    if ($order-&gt;get_status() == 'completed') {\n        $actions['view-license-keys'] = [\n            'url' =&gt; wc_get_endpoint_url('license-keys', $order-&gt;get_id()),\n            'name' =&gt; __('View license keys', 'txtdomain')\n        ];\n    }\n    return $actions;\n}, 10, 2);<\/code><\/pre>\n<p>See peaks lisama iga t\u00e4idetud tellimuse jaoks uue nupu:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152793-61e4fadf850fe.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152793-61e4fadf850fe.png\" alt=\"Kuidas lisada kohandatud l\u00f5pp-punkte WooCommerce&#039;i lehele Minu konto\" ><\/a><\/p>\n<p>N\u00fc\u00fcd vajame ainult malli, mida l\u00f5pp-punkti jaoks n\u00e4idata <code>license-keys<\/code>.<\/p>\n<h3>L\u00f5pp-punkti renderdamine<\/h3>\n<p>L\u00f5pp-punktid t\u00f6\u00f6tavad WordPressis nii, et k\u00f5ik, mis tuleb p\u00e4rast l\u00f5pp-punkti, on selle p\u00e4ringumuutuja v\u00e4\u00e4rtus. v\u00f5i teisis\u00f5nu; kui k\u00fclastame n\u00e4iteks URL-i, <code>&lt;example.com&gt;\/my-account\/license-keys\/204\/<\/code>mida saame kasutada <code>get_query_var('license-keys')<\/code>tellimuse ID hankimiseks; 204.<\/p>\n<p>Meie kohandatud l\u00f5pp-punkti sisu v\u00e4ljastamiseks \u00fchendame selle k\u00fclge <code>woocommerce_account_&lt;endpoint key&gt;_endpoint<\/code>, mis meie puhul oleks <code>woocommerce_account_license-keys_endpoint<\/code>. Selle funktsiooni sees saame kasutada <code>get_query_var()<\/code>tellimuse ID hankimiseks ja selle p\u00e4ringuga mis tahes litsentsiv\u00f5tmete tellimust.<\/p>\n<pre><code>add_action('woocommerce_account_license-keys_endpoint', function() {\n    $order_id = get_query_var('license-keys');\n    $licenses = [];  \/\/ Function to return licenses for order ID\n\u00a0\n    wc_get_template('myaccount\/license-keys.php', [\n        'licenses' =&gt; $licenses,\n        'order_id' =&gt; $order_id\n    ]);\n});<\/code><\/pre>\n<p>Teie kohandatud malli \u201e <code>myaccount\/license-keys.php<\/code>&#8221; tegelik HTML-v\u00e4ljund s\u00f5ltub t\u00e4ielikult teie vajadustest. Arvatavasti oleksite kasutanud tellimuse ID-d, et koguda litsentsiv\u00f5tmed m\u00f5nda massiivi ja edastada see ilusa v\u00e4ljundi saamiseks mallile. \u00dclaltoodud koodis edastan ka tellimuse ID-d, nii et see on <code>$order_id<\/code>malli sees juurdep\u00e4\u00e4setav (nt ilusa pealkirja &quot;Tellimuse nr 204 litsentsiv\u00f5tmed&quot; v\u00e4ljastamiseks).<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>See postitus selgitab, kuidas lisada kohandatud l\u00f5pp-punkte WooCommerce&#8217;i &#8220;Minu kontole&#8221;; kas eraldi vahekaardina v\u00f5i iga tellimuse nupuna vahekaardil &#8220;Tellimused&#8221;.<\/p>\n","protected":false},"author":1,"featured_media":223696,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[1110,842,812,812,842,853,853,863,863],"tags":[1165],"class_list":{"0":"post-233610","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-n-a","8":"category-opetused","9":"category-pistikprogrammid","12":"category-woocommerce-4","14":"category-wordpress-4","16":"tag-affiai-et"},"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/233610","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=233610"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/233610\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/223696"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=233610"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=233610"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=233610"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}