{"id":228557,"date":"2022-10-23T09:58:00","date_gmt":"2022-10-23T06:58:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=228557"},"modified":"2022-11-09T02:59:53","modified_gmt":"2022-11-08T23:59:53","slug":"ajutised-valikud-wordpressis-meie-parim-valik","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/ajutised-valikud-wordpressis-meie-parim-valik\/","title":{"rendered":"Ajutised valikud WordPressis: meie parim valik?"},"content":{"rendered":"\n<p>Mis puutub programmeerimisse, siis ajutiste v\u00e4\u00e4rtuste v\u00f5i ajutiste muutujate idee v\u00f5i mistahes viis andmete ajutiseks m\u00e4llu salvestamiseks pole midagi uut.<\/p>\n<p>Kuid t\u00f6\u00f6tades WordPressiga \u2013 mis on kodakondsuseta \u2013 ei ole meil alati seda luksust. See t\u00e4hendab, et asi ei ole lihtsalt selles, et visata midagi praegusesse <a href=\"https:\/\/php.net\/manual\/en\/features.sessions.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">seanssi<\/a>, lugeda see ja siis eemaldada, kui see on tehtud.<\/p>\n<p>Ja just siis olen ma parema termini puudumisel j\u00e4rjest rohkem m\u00f5elnud ajutiste v\u00f5imaluste ideele. See t\u00e4hendab, et kui mul on vaja salvestada v\u00e4\u00e4rtus \u00fchest lehe laadimisest v\u00f5i p\u00e4ringust, et lugeda seda teises lehe laadimises v\u00f5i m\u00f5nes muus p\u00e4ringus, viskan v\u00e4\u00e4rtuse ajutiselt <a href=\"https:\/\/codex.wordpress.org\/Database_Description#Table:_wp_options\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">valikute tabelisse<\/a>.<\/p>\n<p>Ajutised valikud: harjutus ja kujutamine algse visandi abil<\/p>\n<p>Kas see on lohakas? V\u00f5ib olla. Kas meil on palju muid valikuid? See s\u00f5ltub sellest, kui palju kaasaegset brauseritehnoloogiat me kasutada tahame. See pole aga selle postituse m\u00f5te.<\/p>\n<p>Asi on selles, et WordPressi toimimisviisi t\u00f5ttu m\u00f5tlen, kas meie praegune parim strateegia ajutiste v\u00e4\u00e4rtuste s\u00e4ilitamiseks, mida k\u00f5ige laialdasemalt toetatakse k\u00f5igis installides, on ajutiselt lisada v\u00e4\u00e4rtus suvandite tabelisse, lugeda see l\u00e4bi ja seej\u00e4rel kustutada. k\u00e4tte saadud?<\/p>\n<h2>Meie v\u00f5imalused ajutiste valikute jaoks<\/h2>\n<p>Mul isiklikult ei ole kindlat arvamust, kas see on halb v\u00f5i mitte. Kui see on oma olemuselt see, kuidas vundament, mille kallal lahenduse kallal t\u00f6\u00f6tan, t\u00f6\u00f6tab, siis ma l\u00e4hen sellega.<\/p>\n<p>Esiteks, ma olen seda tavaliselt WordPressis teinud j\u00e4rgmiselt:<\/p>\n<h3>1 Ajutise valiku loomine<\/h3>\n<p>Esiteks seadistasin funktsiooni, mis on konksuga <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/update_option\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">update_option<\/a>. <a href=\"https:\/\/gist.github.com\/tommcfarlin\/09c436b55f4c5eecc4187d7fc438ea40#file-00-init-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">See v\u00f5imaldab vaadata v\u00e4rskendatavat<\/a> valikut, selle vana v\u00e4\u00e4rtust ja uut v\u00e4\u00e4rtust.<\/p>\n<pre><code>&lt;?php\n\npublic function init() {\n\n    add_action(\n        'update_option',\n        array( $this, 'manage_temporary_option' ),\n        10, 3\n    );\n}<\/code><\/pre>\n<p>Funktsioonis saan vaadata ja n\u00e4ha, kas konkreetne valik on salvestatud. Kui ei, siis v\u00f5in seda lihtsalt ignoreerida; muidu v\u00f5in seda vaadata ja hakata t\u00f6\u00f6tama <a href=\"https:\/\/gist.github.com\/tommcfarlin\/09c436b55f4c5eecc4187d7fc438ea40#file-01-manage-temporary-option-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ajutise valikuga<\/a>.<\/p>\n<pre><code>&lt;?php\n\npublic function manage_temporary_option( $option_name, $old_value, $new_value) {\n\n    if ('an_irrelevant_option' !== $option_name) {\n        return;\n    }\n\n    $url = 'page-from-which-we-expect-to-come.php';\n    if ($url === $_SERVER['REQUEST_URI']) {\n\n        update_option(\n            'our_temporary_option',\n            $new_value\n        );\n    }\n}\n<\/code><\/pre>\n<p>Aga mida ajutine valik tooks?<\/p>\n<h3>2 Valik ajutiste optsioonide jaoks<\/h3>\n<p>Oletame, et teil on pistikprogrammis suvand, mis on sisse l\u00fclitatud. V\u00f5ib-olla n\u00f5uab see, et kasutaja sisestaks enne protsessi \u00fclej\u00e4\u00e4nud osa teatud teavet.<\/p>\n<p>N\u00e4ide: Oletagem, et t\u00f6\u00f6tate kassakogemuse kallal ja soovite sundida kasutajaid kontot looma, kuid on olemas valik, mis v\u00f5imaldab klientidel tasuda ilma kontot loomata.<\/p>\n<p>\u00dcks rakendus, mida saaksime kasutada, on j\u00e4rgmine:<\/p>\n<ol>\n<li>Enne kassalehe laadimist kontrollige, kas kasutaja saab kassasse minna k\u00fclalisena.<\/li>\n<li>Kui jah, salvestage valiku algne v\u00e4\u00e4rtus ajutisse suvandisse.<\/li>\n<li>Muutke algset v\u00e4\u00e4rtust nii, et see n\u00f5uab konto loomist.<\/li>\n<li>Kui kassaprotsess on tehtud, kopeerige ajutise valiku v\u00e4\u00e4rtus algsesse valikusse.<\/li>\n<li>Kustutage ajutine valik.<\/li>\n<\/ol>\n<p>See sarnaneb kogu harjutusega C-s, kui vajate kursorit <a href=\"http:\/\/www.c4learn.com\/c-programs\/interchanging-values-of-two-variables.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">kahe numbri vahetamiseks<\/a> (selle jaoks, kes m\u00e4letab v\u00f5i kes on seda teinud).<\/p>\n<h2>Meie parim valik?<\/h2>\n<p>Eespool kirjeldatud protsess on vaid n\u00e4ide ega ole m\u00f5eldud ajutiste v\u00e4\u00e4rtuste s\u00e4ilitamise l\u00f5plikuks viisiks. Teiseks, kassan\u00e4ide ei ole m\u00f5eldud seda postitust e-kaubandusega seostama.<\/p>\n<p>Selle asemel on see m\u00f5eldud pakkuma konkreetset kasutusjuhtumit, kui ajutiste valikute salvestamine on kasulik ja kuidas me v\u00f5iksime seda teha.<\/p>\n<p>Seega j\u00e4\u00e4b algne k\u00fcsimus alles: kas WordPressi toimimisviisi, seansside v\u00e4hesust ja ilma teatud brauseri funktsioonide (nt localStorage) tagamata on valikute tabelis olevad ajutised valikud meie parim viis?<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Arvestades WordPressi toimimist, seansside ja brauseri funktsioonide puudumist, kas ajutised valikud valikute tabelis on meie parim viis?<\/p>\n","protected":false},"author":1,"featured_media":221144,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,749,894,916,842,812,863],"tags":[1165],"class_list":["post-228557","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-avatud-laehtekoodiga","category-kood","category-muud","category-opetused","category-pistikprogrammid","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/228557","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=228557"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/228557\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/221144"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=228557"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=228557"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=228557"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}