Zipping Issue: Last File is not zipping

Obiettivo del blog:

L'obiettivo di questo blog è aiutarti a sapere come risolvere il problema l'ultimo file non è zippato". Se stai affrontando lo stesso problema, questo blog ti aiuterà. Esempio: se ci sono 4 file di testo, solo 3 file vengono compressi.

Motivo per questo

Il

Soluzione:

È necessario sostituire

$ zip = new ZipArchive (); // zip i file più vecchi di 2 giorni foreach (glob ($ directory. '/*.txt') come $ a_file) {if (filemtime ($ a_file) <time () - 172800) {// 2 giorni più vecchi 172800 $ filename_array = esplodere ("/", $ a_file); $ key = sizeof ($ nome_array) - 1; $ nomefile = $ nome_array [chiave $]; $ source_path = $ directory. '/'; $ zip_file = $ source_path.str_replace ('. txt', '', $ nomefile). ". zip"; if ($ zip-> open ($ zip_file, ZipArchive :: CREATE)! == TRUE) {exit ("impossibile aprire". $ zip_file. "\ n"); } $ zip-> addFile ($ a_file, $ nomefile); }} $ zip-> close (); // Sostituito zip_close ($ zip) di $ zip-> close (); // Sposta i 90 giorni più vecchi nell'Archivio e rimuovi i file più vecchi di 180 giorni foreach (glob ($ directory. '/ *. Zip') come $ a_file) {// rimuovi i file che hanno più di 180 giorni. if (filemtime ($ a_file) <time () - 15552000) {// 180 giorni precedenti 15552000 scollegare ($ a_file); }}

sommario

In questo blog, abbiamo modificato la funzione di chiusura zippata per risolvere il problema.


Come aggiungere l’impostazione per il plug-in personalizzato nel menu delle impostazioni di WordPress?

Obiettivo del blog:

L’obiettivo di questo blog è aiutarti a sapere come viene creata l’impostazione di qualsiasi plug-in personalizzato. Al giorno d’oggi, la maggior parte dei plug-in contiene impostazioni per consentire agli utenti di modificare la funzionalità del plug-in in base alla propria scelta.


In questo blog, stiamo creando il plug-in personalizzato come riferimento. I requisiti di base per aggiungere l’impostazione del plugin sono:

  • Per registrare le impostazioni per un Plugin
  • Per creare una pagina delle opzioni per un plug-in
  • Per visualizzare le impostazioni del plug-in nella pagina dell’opzione

Passaggi per aggiungere l’impostazione del plug-in:

1.�Crea la tua cartella plugin personalizzata all’interno della cartella “plugin” del tuo sito Woo Commerce. Nel codice di esempio, abbiamo creato una cartella “custom-plugin”.

2.�Crea un nuovo file PHP all’interno della cartella “plug-in personalizzato”. Il nome del file deve essere lo stesso della cartella del plug-in personalizzato. Nel codice di esempio, abbiamo creato un file “custom-plugin.php”.

3.�È necessario registrare le impostazioni di ogni campo del plug-in personalizzato. Questo passaggio inserisce nella whitelist le opzioni di impostazione del plug-in (campi) utilizzate per salvare i dati di impostazione del plug-in nella tabella wp_options. Qui, ho registrato l’impostazione per il mio plug-in personalizzato come mostrato di seguito e ho aggiunto quel codice al file “custom-plugin.php”.

/* * Nome plug-in: Plugin personalizzato * Descrizione: Questo plug-in è il plug-in personalizzato e creato da velsof * Versione: 1.0.0 * Autore: Velsof */ function custom_plugin_register_settings() { register_setting('custom_plugin_options_group', 'first_field_name'); register_setting('custom_plugin_options_group', 'second_field_name'); register_setting('custom_plugin_options_group', 'third_field_name'); } add_action('admin_init', 'custom_plugin_register_settings');

Per saperne di più su “register_setting” puoi controllare il documento “https://developer.wordpress.org/reference/functions/register_setting/”

4. In questo passaggio, devi creare la pagina delle opzioni per il tuo plug-in personalizzato e aggiungere l’opzione nel sottomenu dell’impostazione di Word Press. Nel codice di esempio, abbiamo scritto la pagina del codice delle opzioni di seguito e aggiunto lo stesso al file “custom-plugin.php”.

function custom_plugin_setting_page() { // add_options_page( string $page_title, string $menu_title, string $capability, string $menu_slug, richiamabile $function = '' ) add_options_page('Custom Plugin', 'Custom Plugin Setting', 'manage_options', ' custom-plugin-setting-url', 'custom_page_html_form'); // custom_page_html_form è la funzione in cui ho scritto l'HTML per il mio modulo plugin personalizzato. } add_action('admin_menu', 'custom_plugin_setting_page');

Dopo aver completato questo passaggio sarai in grado di vedere l’opzione del tuo plug-in personalizzato nell’impostazione di Word Press come mostrato nell’immagine qui sotto:

5. In questo passaggio, è necessario creare il modulo per visualizzare le opzioni (campi) nella pagina delle impostazioni del plug-in personalizzato. Qui, ho creato una funzione “custom_page_html_form” come mostrato di seguito e ho aggiunto la stessa al file “custom-plugin.php”.

funzione pagina_personalizzata_html_form() { ?> Intestazione della pagina delle impostazioni personalizzate del plug-in  Nome del primo campo: "> Nome del secondo campo: "> Nome del terzo campo: ">

Dopo aver completato questo passaggio verrà creato il modulo del tuo plug-in personalizzato e i dati verranno salvati nel database facendo clic sul pulsante “Salva modifiche” come mostrato di seguito:

Nota:�Se viene visualizzato l’errore “pagina delle opzioni non trovata” durante il salvataggio dell’impostazione del plug-in personalizzato. Quindi è necessario seguire i passaggi seguenti: 1.Aprire il file “options.php” (posizione del file: wp\wp-admin\options.php). 2.Aggiungi il gruppo di opzioni del plug-in personalizzato nell’array $whitelist_options.

Esempio:

$whitelist_options['custom_plugin_options_group'] = array('first_field_name', 'second_field_name', 'third_field_name');

È possibile scaricare il codice di esempio�qui.

sommario

Dopo aver letto questo documento potrai aggiungere l’impostazione del tuo plugin personalizzato nel menu delle impostazioni di WordPress.

Come integrare Google reCAPTCHA con PHP?

 

Al giorno d’oggi tutti vogliono sbarazzarsi dello spam sul proprio sito web, che si tratti di commenti spam, messaggi spam o traffico spam sul proprio sito. Per proteggere il tuo sito web dallo spam, uno dei modi migliori e più semplici è utilizzare Google reCAPTCHA.

In passato, le persone mettevano un numero o una stringa casuale sullo schermo e lo verificavano sul lato server. Ma questo metodo è quello dei vecchi tempi e richiede molto tempo per molti utenti, mentre il metodo reCAPTCHA di Google è facile da usare e richiede meno tempo, con conseguente migliore esperienza utente. Basta un solo clic per dimostrare che sono esseri umani e non robot. Google reCAPTCHA è molto semplice da implementare in uno script PHP.

Raccomandato Leggi: Come integrare la protezione di Google ReCaptcha nel tuo negozio PrestaShop?

In questo blog imparerai come integrare Google reCaptcha con PHP nella nostra guida passo passo.

Passaggio 1: recuperare la chiave API di Google reCAPTCHA

Per ottenere una chiave API per utilizzare reCAPTCHA con PHP, devi registrare il tuo sito web su: https://www.google.com/recaptcha/admin. Gli screenshot sono riportati di seguito per tuo aiuto:


Etichetta: Utilizza un’etichetta di tua scelta, in modo che sia facile riconoscere il sito in futuro. Puoi aggiungere il nome del tuo marchio o l’URL del sito web in questo campo per migliorare la leggibilità del nome del progetto.

Tipo reCAPTCHA: Scegli il tipo di reCAPTCHA che preferisci per il tuo sito. Attualmente sono disponibili due tipi, ovvero reCAPTCHA v3 e reCAPTCHA v2. Abbiamo utilizzato reCAPTCHA v2 nel progetto di esempio.

domini: Qui devi inserire il nome del tuo sito web per il quale implementerai la funzionalità reCAPTCHA. Si applica ai domini che inserisci qui e anche ai relativi sottodomini. Ad esempio, una registrazione per abc.com registra anche xyz.abc.com.

Ora basta selezionare la casella di controllo Accetta i Termini di servizio di reCAPTCHA e fai clic sul pulsante Invia.

Ora hai la chiave del sito e la chiave segreta per il tuo sito web.

Passaggio 2: per implementare Google reCaptcha con PHP, il secondo passaggio prevede l’implementazione della funzionalità reCAPTHA sul tuo sito:

  • Per aggiungere reCAPTCHA in PHP devi prima includere la libreria JavaScript reCAPTCHA nel tuo HTML.
    
    
  • Ora aggiungi questo codice HTML nel punto in cui desideri mostrare il widget reCAPTCHA.
    
    
  • Sostituisci “site_key” con la chiave del sito fornita da Google per il tuo sito web.
  • Ora è fatto, basta aggiornare la tua pagina e vedrai il widget reCAPTCHA sul tuo sito.

Passaggio 3: Per convalidare la risposta dell’utente

Ora devi convalidare la risposta quando un utente fa clic sul widget reCAPTCHA. Il codice PHP per verificare la risposta dell’utente è riportato di seguito:

success) { $succMsg = 'La tua richiesta di contatto è stata inviata con successo.'; } else { $errMsg = 'Verifica del robot fallita, riprova.'; } } ?>

Aggiungi la tua vera chiave segreta nel codice sopra e il gioco è fatto.

Ottieni il codice di esempio qui.

Raccomandato Leggi: Due moduli efficaci per tenere lontani spammer e bot dal negozio PrestaShop

Knowband offre il componente aggiuntivo Google ReCaptcha per varie piattaforme, tra cui PrestaShop, ed OpenCart. Il modulo Google ReCaptcha è un potente strumento di sicurezza che protegge il tuo sito web dalle voci di spam facilitando al contempo un facile accesso per gli utenti effettivi.

Il plug-in Google ReCaptcha può essere utilizzato per l’accesso, la registrazione, la reimpostazione della password, moduli di contatto noti e altre cose. Le immagini vengono mostrate nel componente aggiuntivo Google ReCaptcha come parte dei processi di convalida standard per aiutare a identificare gli esseri umani.

Questo modulo Google reCaptcha offre prestazioni eccellenti ed è estremamente personalizzabile. Dal back-end dei moduli Knowband, l’e-mercante può modificare rapidamente il componente aggiuntivo Google reCaptcha.

Componente aggiuntivo Google ReCaptcha di Prestashop

PrestaShop Google reCaptcha di Knowband migliora la sicurezza del tuo negozio integrando Google reCaptcha, prevenendo spam e bot automatizzati.

Acquistare ora

Parole finali:

L’implementazione di Google reCAPTCHA sui siti Web è essenziale per la sicurezza. Aiuta a distinguere gli utenti reali dai bot, prevenendo spam e attacchi automatizzati. Ciò mantiene i dati degli utenti al sicuro e garantisce che il sito Web funzioni senza intoppi. Bloccando il traffico dannoso, reCAPTCHA migliora l’esperienza dell’utente, rendendo le interazioni online più sicure e affidabili.

Lettura consigliata – Potenzia la sicurezza del tuo negozio PrestaShop con i migliori moduli PrestaShop di Knowband
Oltre a questo, Google reCaptcha è anche compatibile con One Page Checkout di Knowband, proteggendoti dalle frodi sulle transazioni. È il modo migliore per proteggere il tuo negozio dalle frodi sulle transazioni. Per visualizzare la demo amministrativa e la demo front-end del modulo Google reCaptcha, visita il nostro Tornare al suo account.

Evita che gli spammer danneggino la tua attività!

 

Errore MySQL: l’utente specificato come definitore (‘xyz’@’localhost’) non esiste

Obiettivi del blog

Per informazioni su come risolvere il problema “L’utente specificato come definitore (‘xyz’@’localhost’) non esiste” in MySQL. Può essere qualsiasi valore al posto di ‘xyz’.

Questo errore si è verificato perché hai definito utenti diversi in Definer e hai utilizzato altri account in MySQL.

Quindi, durante la creazione di Trigger, dovresti usare “root@localhost” nel Definer. Seguire i passaggi seguenti per risolvere questo errore:

Passo 1: Apri phpMyAdmin

Passo 2: Seleziona il database e la tabella

Passo 3: Clicca sul “Trigger” scheda dalla parte superiore della pagina

Passo 4: Clicca sul “Modifica” per modificare i trigger.

Passo 5: Cambia Definer da xyz@localhost a root@localhost

Per maggiori dettagli controlla questo screenshot:

Come ridurre al minimo la frequenza di rimbalzo del nostro sito Web?

Qual è la frequenza di rimbalzo?

Innanzitutto, dovremmo conoscere il termine "frequenza di rimbalzo"

In?easy words we can say, bounce rate is the ratio between the number of visitors comes on our site and the number of visitors leaves our site from the landing page without navigating to another page.

Quando visitatori o clienti arrivano sul nostro sito Web da qualsiasi altro link esterno, ad esempio pubblicità, risultati di ricerca, link condivisi, ecc., Ma se non visitano i link interni del sito. Ciò aumenterà la frequenza di rimbalzo poiché il server di Google Analytics non verrà attivato a causa dell'assenza di coinvolgimento.

Quindi questo abbasserà la nostra classifica nei risultati dei motori di ricerca che è sicuramente una grande perdita per la crescita del nostro sito web.

Quando conta la frequenza di rimbalzo

Dobbiamo tenere presente che se l'obiettivo del nostro sito Web è quello di condividere informazioni, il rimbalzo non ha importanza per noi. Facciamo un esempio se la nostra pagina web fornisce informazioni di testo e

Ma la frequenza di rimbalzo conta davvero se non vediamo l'ora di coinvolgere sempre più visitatori attivi sui nostri siti.

Il motivo principale della frequenza di rimbalzo

  • Il caricamento del sito Web richiede più tempo.
  • Interfaccia utente e gestione dei contenuti errate.
  • L'interfaccia utente della pagina di destinazione è complessa e non facilmente comprensibile per ogni tipo di utente.
  • I visitatori non hanno ottenuto le informazioni nel modo intelligente che cercavano.
  • I collegamenti interni del nostro sito Web non sono chiaramente evidenziati per i visitatori.
  • Popup indesiderato sulle pagine di destinazione.

Come misurare la frequenza di rimbalzo

Google offre molti servizi utili per il nostro sito Web. Per misurare la frequenza di rimbalzo che possiamo usarehttps://analytics.google.com/

Per utilizzare questi strumenti abbiamo solo bisogno di un account Google e collegare il nostro sito Web con Google Analytics. Nota: se hai bisogno di aiuto per utilizzare questo strumento, scrivi la query nella casella dei commenti nella parte inferiore della pagina.

Secondo Google

La frequenza di rimbalzo è una sessione a pagina singola divisa per tutte le sessioni o la percentuale di tutte le sessioni sul tuo sito in cui gli utenti hanno visualizzato solo una singola pagina e attivato una sola richiesta al server Analytics. Come ridurre al minimo la frequenza di rimbalzo del nostro sito Web?

Una buona pagina di destinazione

Una pagina di destinazione è la prima pagina in cui i nostri visitatori accedono al nostro sito Web facendo clic sui collegamenti dei risultati dei motori di ricerca.Knowband?is a good example of the landing page.

Ridurre il tempo di caricamento della pagina

Come utente, possiamo sapere quanto sia irritante sfogliare le pagine lente. I visitatori devono semplicemente premere il pulsante Indietro se una pagina impiega più di 5 secondi per caricarsi. Anche gli script di terze parti indesiderati sul nostro sito Web aumentano il tempo di caricamento della pagina. Se stiamo mostrando un'immagine non ottimizzata, ci vuole anche più tempo per caricare.

Suggerimenti:?Secondo Google, un buon punteggio per la velocità della pagina è 85 o superiore. Siamo in grado di conoscere la velocità delle nostre pagine utilizzando lo strumento Google Analytics.

Rimuovi pop-up indesiderati

I pop-up e gli annunci indesiderati sulle pagine sono anche responsabili di aumentare la frequenza di rimbalzo.

Test AB

AB Testing è un esperimento utile in cui due o più design della stessa pagina verranno mostrati casualmente ai visitatori. Vedendo il rapporto del test AB possiamo analizzare quale disegno aveva funzionato meglio e dato più conversione.

CTA: Call To Action

CTA è proprio come una trappola nascosta o esche sulla nostra pagina di destinazione.


Errore GitAhead: tutti i file modificati non vengono selezionati dal pulsante 'Stage All'

Obiettivi del blog

Per informazioni su come selezionare i file modificati da distribuire sul server utilizzando GitAhead. Generalmente, facendo clic sul pulsante "Seleziona tutto" tutti i file modificati selezionati e il pulsante "Seleziona tutto" vengono disabilitati automaticamente. Ma per alcuni file, non verrà selezionato e se provi a farlo manualmente non ti lascerà fare. E mostrerà anche quei file come "parzialmente in scena". Puoi vedere nello screenshot qui sotto:

Per risolvere questo problema è necessario seguire i passaggi seguenti:

Passo 1: Fare clic con il tasto destro su tutto quel file e fare clic su "Unset Executable" come mostrato nello screenshot seguente:


Passo 2: Ora fai clic sul pulsante "Stage All" e ora metterà in scena tutti i file. Ora sarai in grado di eseguire correttamente il commit sul server.


Come impostare la crittografia e la decrittografia tra l’applicazione Web Android e ASP.Net?

In questa crittografia, utilizzeremo una chiave segreta per crittografare la stringa. L’algoritmo utilizzato sarà AES con modalità CBC (Cipher Block Chaining).

Il codice C# utilizzerà il riempimento PKCS7, poiché PKCS5 non è disponibile lì. In Android, utilizza internamente il riempimento PKCS5, anche se specifichiamo il riempimento PKCS7 nella trasformazione della cifratura. Quindi, stiamo anche specificando la modalità di riempimento PKCS5. Quando testati, entrambi producono gli stessi risultati corretti.

In questo metodo di crittografia, viene utilizzata un’unica chiave sia per la chiave segreta che per il sale.

Quando si utilizzano chiavi diverse per la chiave segreta e il salt, c’era una certa differenza tra le versioni con codifica Base64 del salt (o vettore di inizializzazione). Le versioni con codifica Base64 sono state create da codici Android e C# ed erano diverse l’una dall’altra.

Per ovviare a questo, abbiamo utilizzato un’unica chiave che fungerà sia da chiave segreta che da sale.

Il codice per la parte Android è il seguente:

public class EncryptionUtils { private final String characterEncoding = "UTF-8"; private final String cipherTransformation = "AES/CBC/PKCS5Padding"; private final String aesEncryptionAlgorithm = "AES"; public String encrypt(String plainText, String key) genera UnsupportedEncodingException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException { byte [] plainTextbytes = plainText.getBytes(characterEncoding); byte [] keyBytes = getKeyBytes(chiave); // restituisce Base64.encodeToString(encrypt(plainTextbytes,keyBytes, keyBytes), Base64.DEFAULT); return Base64.encodeToString(encrypt(plainTextbytes,keyBytes, keyBytes), Base64.NO_WRAP); } public String decrypt(StringcryptedText, String key) genera KeyException, GeneralSecurityException, GeneralSecurityException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException, IOException { byte [] cipheredBytes = Base64.decode(encryptedText, Base64.DEFAULT); byte[] keyBytes = getKeyBytes(chiave); restituisce una nuova stringa (decrypt(cipheredBytes, keyBytes, keyBytes), characterEncoding); } public byte [] decrypt( byte[] cipherText, byte[] key, byte [] initialVector) genera NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException { Cipher cipher = Cipher.getInstance(cipherTransformation); SecretKeySpec secretKeySpecy = new SecretKeySpec(chiave, aesEncryptionAlgorithm); IvParameterSpec ivParameterSpec = new IvParameterSpec(initialVector); cipher.init(Cipher.DECRYPT_MODE, secretKeySpecy, ivParameterSpec); cipherText = cipher.doFinal(cipherText); restituisce testo cifrato; } public byte[] encrypt(byte[] plainText, byte[] key, byte [] initialVector) genera NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException { Cipher cipher = Cipher.getInstance(cipherTransformation); SecretKeySpec secretKeySpec = new SecretKeySpec(chiave, aesEncryptionAlgorithm); IvParameterSpec ivParameterSpec = new IvParameterSpec(initialVector); cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivParameterSpec); testo in chiaro = cifra.doFinal(testo in chiaro); restituire il testo in chiaro; } private byte[] getKeyBytes(String key) genera UnsupportedEncodingException{ byte [] keyBytes= new byte[16]; byte [] parametroKeyBytes= key.getBytes(characterEncoding); Sistema .arraycopy(parametroKeyBytes, 0 , keyBytes, 0, Math.min(parametroKeyBytes.length, keyBytes.length)); restituire keyByte; } } Lettura consigliata: copia negli appunti in JavaScript

Il codice per la parte C# è il seguente:

// Crittografa il testo in chiaro utilizzando una chiave AES a 128 bit e un Chain Block Cipher e restituisce una stringa codificata in base64 public string Encrypt(String plainText, String key) { var plainBytes = Encoding.UTF8.GetBytes(plainText); return Convert.ToBase64String(Encrypt(plainBytes, GetRijndaelManaged(key))); } public string Decrypt(StringcryptedText, String key) { varcryptedBytes = Convert.FromBase64String(encryptedText); return Encoding.UTF8.GetString(Decrypt(encryptedBytes, GetRijndaelManaged(chiave))); } public byte[] Encrypt(byte[] plainBytes, RijndaelManaged rijndaelManaged) { return rijndaelManaged.CreateEncryptor() .TransformFinalBlock(plainBytes, 0, plainBytes.Length); } byte pubblico[] Decrypt(byte[] dati crittografati, RijndaelManaged rijndaelManaged) { return rijndaelManaged.CreateDecryptor() .TransformFinalBlock(encryptedData, 0,cryptedData.Length); } public RijndaelManaged GetRijndaelManaged(String secretKey) { var keyBytes = new byte[16]; var secretKeyBytes = Encoding.UTF8.GetBytes(secretKey); Array.Copy(secretKeyBytes, keyBytes, Math.Min(keyBytes.Length, secretKeyBytes.Length)); return new RijndaelManaged { Mode = CipherMode.CBC, Padding = PaddingMode.PKCS7, KeySize = 128, BlockSize = 128, Key = keyBytes, IV = keyBytes }; }

Con l’aiuto del codice sopra, è possibile crittografare una stringa su una piattaforma, quindi decrittografarla sull’altra piattaforma e viceversa.

Raccomandato Leggi:ï ¿½Come vedere il codice del file ‘.ctp’ colorato come il file ‘.php’ in NetBeans

Generate QR Code Using PHP

Il codice QR è un tipo di codice a barre bidimensionale da cui viene abbreviato Quick Response Code . È un’etichetta ottica che contiene informazioni sull’articolo. È semplicemente allegato all’articolo. Contiene quadrati neri disposti in una griglia quadrata con sfondo bianco.

In questo blog impareremo passo dopo passo come generare il codice QR utilizzando PHP. Con l’aiuto di un semplice script PHP puoi generare codice QR per testo, telefono, URL, e-mail e SMS.

In questo progetto è necessario creare due file:

  1. qrcode.php
  2. index.php

PASSO 1: Definisci la classe QrCode in qrcode.php:

1. Crea un QrCode di classe. In questa lezione definiremo l’URL per l’API GOOGLE CHART e le funzioni per generare il codice QR per testo, telefono, URL, e-mail e SMS.

codice Qr della classe { }

PASSO 2: Definisci l’URL dell’API del grafico di Google nella classe QrCode:

1. Creiamo variabili per memorizzare l’URL dell’API della carta di Google e i dati utilizzati per creare il codice QR.

class QrCode { //URL DELL'API GOOGLE CHART private $apiUrl = 'https://chart.apis.google.com/chart'; // DATI PER CREARE IL CODICE QR private $data; }

PASSO 3: Definisci le funzioni per generare codici QR di diversi tipi nella classe QrCode:

Abbiamo i seguenti tipi e funzioni per gli stessi in cui possiamo generare il codice QR:

1.URL

// Funzione utilizzata per generare il tipo URL del codice QR. URL della funzione pubblica($url = null) { $this->data = preg_match("#^https?\:\/\/#", $url) ? $url: "https://{$url}"; }

2 Testo

// Funzione utilizzata per generare il tipo TESTO del codice QR. funzione pubblica TEXT($testo) { $questo->dati = $testo; }

3. E-MAIL

// Funzione che viene utilizzata per generare il tipo EMAIL del codice QR. funzione pubblica EMAIL($email = null, $oggetto = null, $messaggio = null) { $this->data = "MATMSG:TO:{$email};SUB:{$oggetto};BODY:{$messaggio}; ;"; }

4.TELEFONO

// Funzione utilizzata per generare il tipo TELEFONO del codice QR. funzione pubblica TELEFONO($telefono) { $questo->dati = "TEL:{$telefono}"; }

5.SMS

// Funzione utilizzata per generare il tipo SMS del codice QR. funzione pubblica SMS($telefono = null, $msg = null) { $this->data = "SMSTO:{$telefono}:{$msg}"; }

6. CONTATTO

// Funzione utilizzata per generare il tipo CONTATTO del codice QR. funzione pubblica CONTATTO($nome = null, $indirizzo = null, $telefono = null, $email = null) { $questo->dati = "MECARD:N:{$nome};ADR:{$indirizzo};TEL: {$telefono};EMAIL:{$email};;"; }

PASSO 4: Definisci le funzioni per salvare l’immagine del codice QR nella classe QrCode:

//Funzione utilizzata per salvare il file immagine qrcode. funzione pubblica QRCODE($dimensione = 400, $nomefile = null) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->apiUrl); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, "chs={$size}x{$size}&cht=qr&chl=" .

PASSO 5: Crea un nuovo file index.php.

1. In questo file chiamiamo la funzione per generare il codice QR di diversi tipi che abbiamo definito in qrcode.php.

2. Per generare il Codice QR di testo devi chiamare la funzione TEXT nel tuo file index.php.

<?php // Include il file qrcode.php. includere "qrcode.php"; // Crea oggetti $qc = new QRCODE(); // Crea il codice di testo $qc->TEXT("Knowband"); // Salva il codice QR $qc->QRCODE(400,"Knowband_text.png"); ?>

3. Per generare il codice QR dell’URL devi chiamare la funzione URL nel tuo file index.php.

<?php // Include il file qrcode.php. includere "qrcode.php"; // Crea oggetti $qc = new QRCODE(); // Crea il codice URL $qc->URL("Knowband.com"); // Salva il codice QR $qc->QRCODE(400,"Knowband_url.png"); ?>

4. Per generare il codice QR EMAIL devi chiamare la funzione EMAIL nel tuo file index.php.

<?php // Include il file qrcode.php. includere "qrcode.php"; // Crea oggetti $qc = new QRCODE(); // Crea il codice EMAIL $qc->EMAIL("Knowband@test.com","Oggetto","Message"); // Salva il codice QR $qc->QRCODE(400,"Knowband_email.png"); ?>

5. Per generare il codice QR TELEFONO devi chiamare la funzione TELEFONO nel tuo file index.php.

<?php // Include il file qrcode.php. includere "qrcode.php"; // Crea oggetti $qc = new QRCODE(); // Crea il codice TELEFONO $qc->TELEFONO("1234567890"); // Salva il codice QR $qc->QRCODE(400,"Knowband_phone.png"); ?>

6. Per generare il codice QR SMS è necessario chiamare la funzione SMS nel file index.php.

<?php // Include il file qrcode.php. includere "qrcode.php"; // Crea oggetti $qc = new QRCODE(); // Crea il codice SMS $qc->SMS("1234567890"); // Salva il codice QR $qc->QRCODE(400,"Knowband_sms.png"); ?>

7. Per generare il codice QR CONTATTO è necessario chiamare la funzione CONTATTO nel file index.php.

<?php // Include il file qrcode.php. includere "qrcode.php"; // Crea oggetti $qc = new QRCODE(); // Crea il codice CONTATTO $qc->CONTATTO("knowband","Indirizzo","1234567890","knowband@test.com"); // Salva il codice QR $qc->QRCODE(400,"Knowband_contact.png"); ?>

PASSO 6: esegui il file di script (index.php) nel tuo ambiente:

Se tutto va bene, il nome del file verrà chiamato “knowband_text.png” e altro che desideri scaricare e salvare sul tuo computer.

NOTA: puoi generare solo 1 tipo di codice QR alla volta.

CLICCA QUI per scaricare il codice completo.

Con oltre 13 anni di eccellenza nella tecnologia dell’informazione, forniamo tecnologie di sviluppo web e app su vari framework. Puoi anche esplorare un’ampia gamma di estensioni eCommerce pronte all’uso Prestashop, Opencart, WooCommerce, Shopify e Magento 2.

In caso di domande/suggerimenti, è possibile contattare il nostro portale di supporto tecnico al nostro indirizzo e-mail support@knowband.com.

Dai un’occhiata al nostro modulo bestseller Supercheckout di una pagina per Prestashop qui:

Componente aggiuntivo Prestashop One Page Checkout

Prestashop One Page Checkout di Knowband semplifica il processo di pagamento, migliorando l’esperienza dell’utente e aumentando le conversioni per il tuo negozio online.

Visita qui

 

Come vedere il codice di

NetBeans è uno dei migliori e potenti IDE per qualsiasi WebDevelopment, specialmente il migliore per i framework PHP come ZenCart, OpenCart, CakePhp ecc. CakePhp usa la propria estensione di file personalizzata per i propri file View, ad esempio * .ctp. NetBeans non conosce questo file per impostazione predefinita. Quindi non ci sono codici colore mostrati quando questi tipi di file vengono aperti in NetBeans. Dobbiamo abilitare manualmente queste funzionalità. Di seguito sono riportati i passaggi per abilitare l'evidenziazione per i file .ctp di CakePHP. 1. Strumenti => Opzioni

2.? Click on Varie => File

3. Fai clic sul pulsante Nuovo e digita CTP. Quindi fare clic su OK.

4. Dal tipo di file associato (MIMI): Scegli: text / x-php5.

5. Clicca su OK.

Nota: Riavviare l'IDE se le modifiche non si riflettono dopo aver eseguito i passaggi precedenti.


How to get Amazon Orders using API

Obiettivo del blog

Dopo aver letto questo blog, sarai in grado di capire come il venditore può ottenere gli ordini Amazon utilizzando l'API.

Conosciamo l'API dell'ordine

L'API degli ordini Amazon aiuta i venditori a ottenere i dettagli dell'ordine e a sincronizzare gli ordini Amazon sulla loro applicazione personalizzata. Questo è molto utile per recuperare gli aggiornamenti degli ordini in tempo reale e i venditori possono anche ottenere facilmente le informazioni sullo stato dell'ordine (spedito o non spedito) per tutti gli ordini utilizzando l'API.

Come sincronizzare gli ordini Amazon sull'applicazione personalizzata

Prima di tutto, hai bisogno delle credenziali dell'API Amazon MWS (Market Place Web Service). Se ancora non hai, puoi ottenere aiuto da questo blog

Per recuperare gli ordini Amazon dalla tua parte, devi seguire i seguenti passaggi:

1. Elenco ordini – In questo passaggio, è necessario inviare una richiesta ad Amazon per ottenere gli ordini da Amazon per un determinato intervallo di tempo. È necessario inviare i seguenti dati indicati di seguito nella richiesta:

mws.amazonservices.co.uk/Orders/2013-09-01? AWSAccessKeyId = XXXXXXXXXXXXXXX & Action = ListOrders & SellerId = XXXXXXXXXXXXXX // Qui scrivi il tuo ID commerciante e SignatureVersion = 2 // Qui scrivi la versione della tua firma e Timestamp = Ymdate : i: s \ Z ", time ()) // Scrivi il timestamp e la versione = 2013-09-01 e firma = 1234Knowband1234example1234 // Qui devi scrivere la firma e SignatureMethod = HmacSHA256 // Qui scrivi il tuo metodo di firma e LastUpdatedAfter = date ("Ymd \ TH: i: s \ Z", strtotime ('- 24 hour')); // richiesta di ottenere ordini per le ultime ore 24 solo da Amazon & OrderStatus.Status.1 = Non spedito // Qui è necessario aggiungere lo stato per il quale si desidera recuperare gli ordini e OrderStatus.Status.2 = PartiallyShipped & OrderStatus.Status.3 = Spedito e MarketplaceId.Id.1 = XXXXXXXXXXXXX AWSAccessKeyId = XXXXXXXXXXXXXXXXXXXXXX

Nella risposta, otterrai un file di feed degli ordini che conterrà l'elenco degli ordini che sono stati immessi su Amazon nelle ultime ore 24 e hanno lo stato dell'ordine richiesto. Ecco il file di feed dell'ordine di esempio.

<?xml version="1.0"?>
<ListOrdersResponse xmlns="https://mws.amazonservices.com/Orders/2013-09-01">
    <ListOrdersResult>
        <Orders>
            <Order>
                <LatestShipDate>2018-03-09T07:59:59Z</LatestShipDate>
                <OrderType>StandardOrder</OrderType>
                <PurchaseDate>2018-03-07T01:15:57Z</PurchaseDate>
                <AmazonOrderId>112-5028700-7051869</AmazonOrderId>
                <BuyerEmail>knowband@marketplace.amazon.com</BuyerEmail>
                <IsReplacementOrder>false</IsReplacementOrder>
                <LastUpdateDate>2018-03-07T10:05:30Z</LastUpdateDate>
                <NumberOfItemsShipped>1</NumberOfItemsShipped>
                <ShipServiceLevel>Std US D2D Intl</ShipServiceLevel>
                <OrderStatus>Shipped</OrderStatus>
                <SalesChannel>Amazon.com</SalesChannel>
                <ShippedByAmazonTFM>false</ShippedByAmazonTFM>
                <IsBusinessOrder>false</IsBusinessOrder>
                <LatestDeliveryDate>2018-04-06T06:59:59Z</LatestDeliveryDate>
                <NumberOfItemsUnshipped>0</NumberOfItemsUnshipped>
                <PaymentMethodDetails>
                    <PaymentMethodDetail>Standard</PaymentMethodDetail>
                </PaymentMethodDetails>
                <BuyerName>George</BuyerName>
                <EarliestDeliveryDate>2018-03-21T07:00:00Z</EarliestDeliveryDate>
                <OrderTotal>
                    <CurrencyCode>USD</CurrencyCode>
                    <Amount>49.44</Amount>
                </OrderTotal>
                <IsPremiumOrder>false</IsPremiumOrder>
                <EarliestShipDate>2018-03-07T08:00:00Z</EarliestShipDate>
                <MarketplaceId>ATVPDKIKX0DER</MarketplaceId>
                <FulfillmentChannel>MFN</FulfillmentChannel>
                <PaymentMethod>Other</PaymentMethod>
                <ShippingAddress>
                    <City>Hong Kong</City>
                    <Phone>XXXXXXXXXX</Phone>
                    <CountryCode>HK</CountryCode>
                    <Name>Khattak Muhammad S.B</Name>
                    <AddressLine1>D, Block 2, Example </AddressLine1>
                    <AddressLine2>H Address Example</AddressLine2>
                </ShippingAddress>
                <IsPrime>false</IsPrime>
                <ShipmentServiceLevelCategory>Standard</ShipmentServiceLevelCategory>
        </Order>
        <Order>
            <LatestShipDate>2018-03-09T07:59:59Z</LatestShipDate>
            <OrderType>StandardOrder</OrderType>
            <PurchaseDate>2018-03-06T20:23:38Z</PurchaseDate>
            <AmazonOrderId>114-8648933-7253863</AmazonOrderId>
            <BuyerEmail>knowband1@marketplace.amazon.com</BuyerEmail>
            <IsReplacementOrder>false</IsReplacementOrder>
            <LastUpdateDate>2018-03-07T10:05:31Z</LastUpdateDate>
            <NumberOfItemsShipped>2</NumberOfItemsShipped>
            <ShipServiceLevel>Std US D2D Dom</ShipServiceLevel>
            <OrderStatus>Shipped</OrderStatus>
            <SalesChannel>Amazon.com</SalesChannel>
            <ShippedByAmazonTFM>false</ShippedByAmazonTFM>
            <IsBusinessOrder>false</IsBusinessOrder>
            <LatestDeliveryDate>2018-04-06T06:59:59Z</LatestDeliveryDate>
            <NumberOfItemsUnshipped>0</NumberOfItemsUnshipped>
            <PaymentMethodDetails>
                <PaymentMethodDetail>Standard</PaymentMethodDetail>
            </PaymentMethodDetails>
            <BuyerName>George</BuyerName>
            <EarliestDeliveryDate>2018-03-21T07:00:00Z</EarliestDeliveryDate>
            <OrderTotal>
            <CurrencyCode>USD</CurrencyCode>
            <Amount>98.87</Amount>
            </OrderTotal>
            <IsPremiumOrder>false</IsPremiumOrder>
            <EarliestShipDate>2018-03-07T08:00:00Z</EarliestShipDate>
            <MarketplaceId>ATVPDKIKX0DER</MarketplaceId>
            <FulfillmentChannel>MFN</FulfillmentChannel>
            <PaymentMethod>Other</PaymentMethod>
            <ShippingAddress>
                <City>Hobe Sound</City>
                <AddressType>Residential</AddressType>
                <PostalCode>2101</PostalCode>
                <StateOrRegion>FL</StateOrRegion>
                <Phone>XXXXXXXXXX</Phone>
                <CountryCode>US</CountryCode>
                <Name> SMITH</Name>
                <AddressLine1>Knowband </AddressLine1>
            </ShippingAddress>
            <IsPrime>false</IsPrime>
            <ShipmentServiceLevelCategory>Standard</ShipmentServiceLevelCategory>
        </Order>
        <LastUpdatedBefore>2018-03-08T06:58:45Z</LastUpdatedBefore>
    </ListOrdersResult>
    <ResponseMetadata>
    <RequestId>7fc9364b-a296-4380-954d-1b0355b9ccea</RequestId>
    </ResponseMetadata>
</ListOrdersResponse>

2. Elenco degli articoli dell'ordine Dal primo passaggio, otterrai solo i dettagli dell'ordine (come ID ordini Amazon, data di acquisto, ecc.) E non i dettagli dell'articolo (dettagli del prodotto ordinato). Per ottenere i dettagli dell'articolo dell'ordine, dovrai inviare una richiesta separata ad Amazon. Devi inviare una richiesta corrispondente a ciascun ordine. Se hai bisogno di dettagli per gli ordini Amazon 5, dovrai inviare richieste 5. La richiesta è riportata di seguito: ad esempio $ Amazon_order_id = 112-5028700-7051869

mws.amazonservices.co.uk/Orders/2013-09-01? AWSAccessKeyId = XXXXXXXXXXXXXXXXXXXX & Action = ListOrderItems & SellerId = 'XXXXXXXXXXXXXX'; // Qui scrivi il tuo ID commerciante, & 'AmazonOrderId' = $ Amazon_order_id // Qui scrivi l'ID ordine per il quale vuoi ottenere i dettagli // Qui devi scrivere la firma, quando invii richieste HTTP ad AWS, devi firma le richieste in modo che AWS possa identificare chi ha inviato la richiesta e Firma = 1234Knowband1234example1234 & SignatureVersion = 2 // Qui scrivi la tua versione della firma e SignatureMethod = HmacSHA256 // Qui scrivi il tuo metodo di firma e Timestamp = gmdate ("Ymd \ TH: i: s \ Z" , time ()) // Scrivi il timestamp e la versione = 2013-09-01

In risposta alla richiesta, otterrai i dettagli descrittivi dell'ordine. Il campione è riportato di seguito:

mws.amazonservices.co.uk/Orders/2013-09-01 <? xml version = "1.0"?> <ListOrderItemsResponse xmlns = "https://mws.amazonservices.com/Orders/2013-09-01&quot;> < ListOrderItemsResult> <OrderItems> <OrderItem> <QuantityOrdered> 1 </QuantityOrdered> <Title> Manchester United Kids Third Shorts 2017 / 18 </Title> <ShippingTax> <CurrencyCode> USD </CurrencyCode> <Amount> XX </ShippingTax> <PromotionDiscount> <CurrencyCode> USD </CurrencyCode> <Amount> 0.00 </Amount> </PromotionDiscount> <ConditionId> New </ConditionId> <IsGift> false </IsGift> <ASIN> B0.00N072QVXNX </ > <SellerSKU> x-7-69 </SellerSKU> <OrderItemId> 96909 </OrderItemId> <ProductInfo> <NumberOfItems> 266 </NumberOfItems> </ProductInfo> <GurrencyWrapTax> <CurrencyCode 22621871528658 </Amount> </GiftWrapTax> <QuantityShipped> 1 </QuantityShipped> <ShippingPrice> <CurrencyCode> USD </CurrencyCode> <Amount> 0.00 </Amount> </ShippingPrice> <GiftWrapPrice> <CurrencyCode> USD </ CurrencyCode > <Amount> XNU MX </Amount> </GiftWrapPrice> <ConditionSubtypeId> New </ConditionSubtypeId> <ItemPrice> <CurrencyCode> USD </CurrencyCode> <Amount> 0 </Amount> </ItemPrice> <ItemTax> <CurrencyCode> USD </ CurrencyCode > <Amount> 19.95 </Amount> </ItemTax> <ShippingDiscount> <CurrencyCode> USD </CurrencyCode> <Amount> 0.00 </Amount> </ShippingDiscount> </OrderItem> </OrderItems> <AmazonOrderId> 29.49-0.00 -0.00XXX </AmazonOrderId> </ListOrderItemsResult> <ResponseMetadata> <RequestId> 112b5028700d7c-cce7-5e934-ab7XXXXXXXXX

3. Crea ordini Questo passaggio è il passaggio finale e dal passaggio 1 e 2, hai ottenuto tutti i dettagli degli ordini Amazon necessari per creare ordini sulla tua applicazione. Analizzando i feed XML di cui sopra (ordine elenco e elemento ordine elenco), è possibile creare ordini sulla propria applicazione. Se un ordine Amazon è già stato creato sulla tua applicazione, puoi utilizzare il passaggio 1 per aggiornare lo stato dell'ordine di tale ordine.