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

Hankige kasutajate aadressid WordPressis, 2. osa

15

Eelmises postituses hakkasin jagama, kuidas WordPressis (kasutades Ajaxit) JSON-i kaudu kasutajate e-posti aadresse alla laadida. Esimene artikkel käsitles:

  1. selleks JavaScripti registreerimine
  2. kasutajate e-posti aadresside hankimine,
  3. ja analüüsides tulemusi.

Siiski on veel teha. Nimelt:

  1. tagastatud teabe teisendamine JSON-iks,
  2. selle faili kettale kirjutamine,
  3. ja kuidas ülejäänud osa JavaScripti abil kokku siduda.

Ja seda selle postituse ülejäänud osa katab. Nii et kui te pole eelmist artiklit lugenud, soovitan seda mitte muul põhjusel kui koodile pilk heita, et seda seni näha.

Kasutajate e-posti aadressid JSON-i kaudu, jätkab

Peale selle, et sama protsessi käsitlemiseks on ka teisi viise (olenevalt kasutajate arvust, on mõned tõhusamad), pange tähele, et ma kasutan selleks jQueryt (vanilje JavaScripti asemel). Mõned inimesed ei ole selle tegemise fännid ja see on lahe, kuid mul pole selles postituses selle kohta näiteid.

Valin need näited, kuna jQuery tarnitakse koos WordPressiga, paljud WordPressi arendajad kasutavad seda, see sobib selle olukorraga ja mulle meeldib see endiselt. 🙂

Seda öeldes jätkan sealt, kus pooleli jäin.

1 Teisendage massiiv JSON-iks

Kui olete PHP-ga tuttav, on seda lihtne teha; aga kui ei, siis pole sellest suurt midagi. Esiteks vaadake PHP käsiraamatus üle json_encode . Pange tähele, et see võtab massiivi ja tagastab selle vormindatud stringina.

Seda ma kasutan e-posti aadresside massiivi teisendamiseks JSON-i stringiks, mis lõpuks kettale kirjutatakse. See on üks koodirida.

json_encode($user_results);

Pidage meeles, et on olemas funktsioon, mis genereerib vastavalt vajadusele kasutajatulemusi. Täpsemalt kutsusin ma funktsiooni getUserInfo ja jagan seda hetkeks.

Kuna me saadame faili kasutajale, tuleb teave kettale kirjutada.

2 Kirjutage see kettale

Sel hetkel on aeg tulemused kettale kirjutada. Sõltuvalt teie serveri õigustest võite faili kettale kirjutada otse pistikprogrammi kataloogis; vastasel juhul peate võib-olla kasutama üleslaadimiste kataloogi.

Eeldades, et kasutate esimest, näeb täisfunktsioon välja järgmine:

<?php

private function writeAddressesToDisk($addresses)
{
    $path = plugin_dir_path(__FILE__). 'results.json';
    if (!file_exists($path)) {
        touch($path);
    }

    $handle = fopen($path, 'w');
    fwrite($handle, json_encode($addresses));
    fclose($handle);
}

Esiteks kontrollib see, kas result.json on olemas. Kui ei, loob see tühja faili. Pärast seda avab see faili kirjutamiseks, langetab JSON-vormingus massiivi sisu faili ja sulgeb seejärel ressursi.

Nüüd on fail kettal, seega on aeg see JavaScripti kasutades kasutajale saata.

3 Saatke see kasutajale

Esiteks vaatame uuesti eelmise postituse JavaScripti funktsiooni _getEmailAddresses  . Siiani tehtud tööd näete selles kokkuvõttes.

Hankige kasutajate aadressid WordPressis, 2. osa

Pange tähele, et esimese asjana tuleb kutsuda serveripoolne funktsioon, mille olen valinud getEmailAddresses kutsumise. Pange tähele, et see käivitab päringu, genereerib massiivi, kirjutab faili kettale ja kordab failinime JavaScripti funktsioonile (kuna WordPress nõuab Ajaxi kõnede jaoks pigem kaja, mitte tagastamist):

<?php

public function getEmailAddresses()
{
    $this->writeAddressesToDisk(
        $this->getUserInfo(
            $this->getUserResults()) );

    echo plugin_dir_url(__FILE__). 'results.json';
    die;
}

Pange tähele, et tegemist on kolme funktsioonikutsega, millest igaüks võtab parameetrina teise tulemused ja kordab seejärel plugin_dir_url faili nimega, mida olen valinud kasutada (selgelt results.json ).

4 Faili saatmine JavaScripti kaudu

Siin läheb asi veidi keerulisemaks. Kood vajab:

  1. veenduge, et on õige vastus,
  2. kui jah, siis loob see dünaamiliselt peidetud ankru
  3. käivitab ankru kliki sündmuse, et simuleerida kasutaja sellel klõpsamist.

On loogiline? Vaadake allpool anonüümse funktsiooni tulemusi:

var _getEmailAddresses = function($elem) {
    $.get(acme_email_export.ajax_url, {
        security:  acme_email_export.security,
        action:    'getEmailAddresses'
    }, function(response) {

        if ('' === response) {
            return;
        }

        // Creates the element to download the file.
        $('<a></a>')
            .attr('href', response)
            .attr('download', 'response.json')
            .attr('id', 'acme-download-emails')
            .text('Download')
            .attr('style', 'display:none')
            .appendTo($elem.parent());

        // Manually trigger clicking of the hidden element to download the file.
        $('#acme-download-emails')[0].click();
    });
};

See kuvab  kasutajale faili allalaadimise dialoogi ja võimaldab neil kuvada selle ja eelmise postituse kaudu loodud JSON-faili.

See on see?

Sisuliselt jah. Tõsi, peate võib-olla oma veebiserveri koodi muutma, kuid üldidee jääb samaks:

  1. käivitage päring,
  2. genereerida massiiv,
  3. teisendage see JSON-iks,
  4. kirjutage see kettale,
  5. saata fail kasutajale

Ja jah, võite valida WordPressi kodeerimisstandardite (versus PSR2), vanilje JavaScripti (vs. jQuery) ja nii edasi.

Sellest hoolimata jääb protseduur samaks ja see on üks viis, kuidas saate WordPressis JSON-i kaudu kasutajate e-posti aadresse alla laadida.

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