✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Tillfälliga alternativ i WordPress: Vårt bästa alternativ?

24

När det kommer till programmering är idén om temporära värden eller temporära variabler eller något sätt att lagra data tillfälligt i minnet inte något nytt.

Men när vi arbetar med WordPress – som är statslöst – har vi inte alltid den lyxen. Det vill säga, det är inte bara en fråga om att till exempel kasta in något i den aktuella sessionen, läsa det och sedan ta bort det när vi är klara med det.

Och det är då jag har funderat mer och mer på idén om tillfälliga alternativ, i brist på en bättre sikt förstås. Det vill säga, när jag behöver lagra ett värde från en enskild sidhämtning, eller begäran, för att läsa in en annan sidhämtning, eller en annan begäran, kommer jag tillfälligt att kasta värdet i alternativtabellen.

Tillfälliga alternativ: En övning och representation via rudimentär skissning

Är det slarvigt? Kanske. Har vi många andra val? Det beror på hur mycket av modern webbläsarteknik vi vill använda. Det är dock inte meningen med det här inlägget.

Poängen är att på grund av hur WordPress fungerar undrar jag om vår nuvarande bästa strategi för att bibehålla tillfälliga värden som stöds mest över installationer är att tillfälligt lägga till ett värde i alternativtabellen, läsa det och sedan ta bort det när det väl är har hämtats?

Våra alternativ för tillfälliga tillval

Personligen har jag ingen stark åsikt om detta är en dålig sak eller inte. Om det är karaktären på hur grunden som jag arbetar med en lösning på fungerar, så går jag med den.

Så, för det första, så här har jag vanligtvis gjort det här inom WordPress:

1 Skapa ett tillfälligt alternativ

Först ställer jag in en funktion som är kopplad till update_option. Detta gör det möjligt att titta på alternativet som uppdateras, dess gamla värde och dess nya värde.

<?php

public function init() {

    add_action(
        'update_option',
        array( $this, 'manage_temporary_option' ),
        10, 3
    );
}

I funktionen kan jag titta och se om ett specifikt alternativ sparas. Om inte, så kan jag bara ignorera det; annars kan jag ta en titt på det och börja arbeta med ett tillfälligt alternativ.

<?php

public function manage_temporary_option( $option_name, $old_value, $new_value) {

    if ('an_irrelevant_option' !== $option_name) {
        return;
    }

    $url = 'page-from-which-we-expect-to-come.php';
    if ($url === $_SERVER['REQUEST_URI']) {

        update_option(
            'our_temporary_option',
            $new_value
        );
    }
}

Men vad skulle det tillfälliga alternativet innehålla?

2 Ett alternativ för tillfälliga tillval

Säg att du har ett alternativ i ett plugin som är växlat. Kanske kräver det att användaren matar in lite information innan han går igenom resten av en process.

Exempel: Säg att du arbetar med en kassaupplevelse och att du vill tvinga användare att skapa ett konto, men det finns ett alternativ som tillåter kunder att betala utan att skapa ett konto.

En implementering vi kan använda är denna:

  1. Innan kassasidan laddas, titta för att se om användaren kan betala som gäst.
  2. Om så är fallet, lagra det ursprungliga värdet för alternativet i ett tillfälligt alternativ.
  3. Ändra det ursprungliga värdet så att det kräver att de skapar ett konto.
  4. När kassan är klar kopierar du värdet från det tillfälliga alternativet till det ursprungliga alternativet.
  5. Ta bort det tillfälliga alternativet.

Det liknar hela övningen i C när du behöver en pekare för att byta två nummer (för den som kommer ihåg eller den som har gjort det).

Vårt bästa alternativ?

Processen som beskrivs ovan är bara ett exempel och är inte tänkt att vara det definitiva sättet att upprätthålla tillfälliga värden. För det andra är kassaexemplet inte menat att associera detta inlägg med e-handel.

Istället är det tänkt att ge ett konkret användningsfall för när det är användbart att lagra tillfälliga alternativ och hur vi kanske vill göra det.

Så den ursprungliga frågan kvarstår: Med tanke på hur WordPress fungerar, bristen på sessioner, och utan att vara garanterade vissa webbläsarfunktioner som localStorage, är tillfälliga alternativ i alternativtabellen vår bästa väg att gå?

Inspelningskälla: tommcfarlin.com

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer