Comment ajouter un paramètre pour un plugin personnalisé dans le menu des paramètres de WordPress ?

Objectif du blog :

L’objectif de ce blog est de vous aider à savoir comment le réglage de n’importe quel plugin personnalisé est créé. De nos jours, la plupart des plugins contiennent des paramètres permettant aux utilisateurs de modifier la fonctionnalité du plugin selon leur choix.


Dans ce blog, nous créons le plugin personnalisé pour votre référence. Les exigences de base pour ajouter le paramètre du plugin sont :

  • Pour enregistrer les paramètres d’un plugin
  • Pour créer une page d’options pour un plugin
  • Pour afficher les paramètres du plugin sur la page des options

Étapes pour ajouter le paramètre de plug-in :

1.�Créez votre dossier de plugins personnalisé dans le dossier “plugins” de votre site Woo Commerce. Dans l’exemple de code, nous avons créé un dossier “custom-plugin”.

2.�Créez un nouveau fichier PHP dans votre dossier “custom-plugin”. Le nom du fichier doit être le même que celui du dossier du plugin personnalisé. Dans l’exemple de code, nous avons créé un fichier “custom-plugin.php”.

3.�Vous devez enregistrer les paramètres de chaque champ de votre plugin personnalisé. Cette étape met en liste blanche les options de paramétrage de votre plugin (champs) qui sont utilisées pour enregistrer les données de paramétrage du plugin dans la table wp_options. Ici, j’ai enregistré le paramètre de mon plugin personnalisé comme indiqué ci-dessous et ajouté ce code au fichier “custom-plugin.php”.

/* * Nom du plugin : Custom Plugin * Description : Ce plugin est le plugin personnalisé créé par velsof * Version : 1.0.0 * Auteur : 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');

Pour en savoir plus sur “register_setting” vous pouvez consulter le document “https://developer.wordpress.org/reference/functions/register_setting/”

4. Dans cette étape, vous devez créer la page d’options pour votre plugin personnalisé et ajouter l’option dans le sous-menu du paramètre Word Press. Dans l’exemple de code, nous avons écrit le code de la page d’options ci-dessous et l’avons ajouté au fichier “custom-plugin.php”.

function custom_plugin_setting_page() { // add_options_page( string $page_title, string $menu_title, string $capability, string $menu_slug, callable $function = '' ) add_options_page('Custom Plugin', 'Custom Plugin Setting', 'manage_options', ' custom-plugin-setting-url', 'custom_page_html_form'); // custom_page_html_form est la fonction dans laquelle j'ai écrit le HTML pour mon formulaire de plugin personnalisé. } add_action('admin_menu', 'custom_plugin_setting_page');

Après avoir terminé cette étape, vous pourrez voir l’option de votre plugin personnalisé dans le paramètre Word press, comme indiqué dans l’image ci-dessous :

5. Dans cette étape, vous devez créer le formulaire pour afficher les options (champs) dans la page de configuration du plugin personnalisé. Ici, j’ai créé une fonction “custom_page_html_form” comme indiqué ci-dessous et ajouté la même chose au fichier “custom-plugin.php”.

fonction custom_page_html_form() { ?> En-tête de page de paramètre de plug-in personnalisé  Nom du premier champ : "> Nom du deuxième champ : "> Nom du troisième champ : ">

Après avoir terminé cette étape, le formulaire de votre plugin personnalisé sera créé et les données seront enregistrées dans la base de données en cliquant sur le bouton “Enregistrer les modifications” comme indiqué ci-dessous :

Remarque :Si vous obtenez l’erreur “page d’options introuvable” lors de l’enregistrement du paramètre du plugin personnalisé. Ensuite, vous devez suivre les étapes ci-dessous : 1. Ouvrez le fichier “options.php” (emplacement du fichier : wp\wp-admin\options.php). 2.Ajoutez le groupe d’options de plug-in personnalisé dans le tableau $whitelist_options.

Mise en situation :

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

Vous pouvez télécharger l’exemple de code�ici.

Résumé

Après avoir lu ce document, vous pourrez ajouter le paramètre de votre plugin personnalisé dans le menu des paramètres de WordPress.

Comment intégrer Google reCAPTCHA avec PHP ?

 

De nos jours, tout le monde veut se débarrasser du spam sur son site Web, qu’il s’agisse de commentaires indésirables, de messages indésirables ou de trafic de spam sur votre site. Pour protéger votre site Web contre le spam, l’un des moyens les meilleurs et les plus simples consiste à utiliser Google reCAPTCHA.

Autrefois, les gens mettaient un nombre ou une chaîne aléatoire sur l’écran et le vérifiaient côté serveur. Mais cette méthode est l’ancienne méthode et elle prend également du temps pour de nombreux utilisateurs, alors que la méthode reCAPTCHA de Google est facile à utiliser et prend moins de temps, ce qui se traduit par une meilleure expérience utilisateur. Il leur suffit d’un simple clic pour prouver qu’ils sont des humains et non un robot. Google reCAPTCHA est très simple à implémenter dans un script PHP.

Lecture recommandée: ,warComment intégrer la protection Google ReCaptcha sur votre boutique PrestaShop ?

Dans ce blog, vous apprendrez comment intégrer Google reCaptcha à PHP dans notre guide étape par étape.

Étape 1 : Pour récupérer la clé API Google reCAPTCHA

Pour obtenir une clé API permettant d’utiliser reCAPTCHA avec PHP, vous devez enregistrer votre site Web sur – https://www.google.com/recaptcha/admin. Les captures d’écran sont données ci-dessous pour votre aide :


Étiquette: Utilisez une étiquette de votre choix, afin qu’il soit facile de reconnaître le site à l’avenir. Vous pouvez ajouter le nom de votre marque ou l’URL du site Web dans ce champ pour améliorer la lisibilité du nom du projet.

Tapez reCAPTCHA : Choisissez le type de reCAPTCHA que vous préférez pour votre site. Il existe actuellement deux types disponibles, à savoir reCAPTCHA v3 et reCAPTCHA v2. Nous avons utilisé reCAPTCHA v2 dans l’exemple de projet.

Domaines: Ici, vous devez saisir le nom de votre site Web pour lequel vous allez implémenter la fonctionnalité reCAPTCHA. Cela s’applique aux domaines que vous saisissez ici, ainsi qu’à ses sous-domaines. Par exemple, une inscription sur abc.com enregistre également xyz.abc.com.

Maintenant, cochez simplement la case de Acceptez les conditions d’utilisation de reCAPTCHA et cliquez sur sur le bouton Soumettre.

Vous disposez désormais de la clé de site et de la clé secrète de votre site Web.

Étape 2 : Pour implémenter Google reCaptcha avec PHP, la deuxième étape consiste à implémenter la fonctionnalité reCAPTHA sur votre site :

  • Pour ajouter reCAPTCHA en PHP, vous devez d’abord inclure la bibliothèque JavaScript reCAPTCHA dans votre code HTML.
    
    
  • Ajoutez maintenant ce code HTML à l’endroit où vous souhaitez afficher le widget reCAPTCHA.
    
    
  • Remplacez “site_key” par la clé de site fournie par Google pour votre site Web.
  • C’est fait maintenant, actualisez simplement votre page et vous verrez le widget reCAPTCHA sur votre site.

Étape 3 : Pour valider la réponse de l’utilisateur

Désormais, vous devez valider la réponse lorsqu’un utilisateur clique sur le widget reCAPTCHA. Le code PHP permettant de vérifier la réponse de l’utilisateur est donné ci-dessous :

success) { $succMsg = 'Votre demande de contact a été soumise avec succès.'; } else { $errMsg = 'La vérification du robot a échoué, veuillez réessayer.'; } } ?>

Ajoutez votre clé secrète réelle dans le code ci-dessus et vous avez terminé.

Obtenez l’exemple de code ici.

Lecture recommandée: Deux modules efficaces pour éloigner les spammeurs et les robots de la boutique PrestaShop

Knowband propose le module complémentaire Google ReCaptcha pour diverses plates-formes, notamment PrestaShop, et de OpenCart. Le module Google ReCaptcha est un outil de sécurité puissant qui protège votre site Web contre les entrées de spam tout en facilitant un accès facile aux utilisateurs réels.

Le plugin Google ReCaptcha peut être utilisé pour la connexion, l’enregistrement, la réinitialisation du mot de passe, les formulaires de contact connus et bien d’autres choses. Les images sont affichées dans le module complémentaire Google ReCaptcha dans le cadre de leurs processus de validation standard pour aider à identifier les humains.

Ce module Google reCaptcha offre d’excellentes performances et est extrêmement personnalisable. Depuis le back-end des modules Knowband, l’e-commerçant peut ajuster rapidement l’addon Google reCaptcha.

Module complémentaire Prestashop Google ReCaptcha

PrestaShop Google reCaptcha de Knowband améliore la sécurité de votre boutique en intégrant Google reCaptcha, empêchant ainsi le spam et les robots automatisés.

Achetez maintenant

Mots finaux:

La mise en œuvre de Google reCAPTCHA sur les sites Web est essentielle pour la sécurité. Il permet de distinguer les vrais utilisateurs des robots, empêchant ainsi le spam et les attaques automatisées. Cela protège les données des utilisateurs et garantit le bon fonctionnement du site Web. En bloquant le trafic nuisible, reCAPTCHA améliore l’expérience utilisateur, rendant les interactions en ligne plus sûres et plus fiables.

Lecture recommandée – Renforcez la sécurité de votre boutique PrestaShop avec les meilleurs modules PrestaShop de Knowband
Parallèlement à cela, Google reCaptcha est également compatible avec One Page Checkout de Knowband, vous protégeant contre la fraude aux transactions. C’est le meilleur moyen de protéger votre boutique contre la fraude transactionnelle. Pour voir la démo d’administration et la démo frontale du module Google reCaptcha, visitez notre Boutique.

Évitez de laisser les spammeurs nuire à votre entreprise !

 

Erreur MySQL : l’utilisateur spécifié en tant que définisseur (‘xyz’@’localhost’) n’existe pas

Objectifs du blog

Pour savoir comment résoudre le problème “L’utilisateur spécifié en tant que définisseur (‘xyz’@’localhost’) n’existe pas” dans MySQL. Il peut s’agir de n’importe quelle valeur à la place de ‘xyz’.

Cette erreur s’est produite car vous avez défini différents utilisateurs dans Definer et utilisé d’autres comptes dans MySQL.

Ainsi, lors de la création de déclencheurs, vous devez utiliser le “root@localhost” dans le Definer. Suivez les étapes ci-dessous pour résoudre cette erreur :

Étape 1 : Ouvrez phpMyAdmin

Étape 2 : Sélectionnez votre base de données et votre table

Étape 3 : Clique sur le “triggers” onglet en haut de la page

Étape 4 : Clique sur le “Modifier” pour modifier les déclencheurs.

Étape 5 : Changer le définisseur de xyz@localhost en root@localhost

Pour plus de détails, consultez cette capture d’écran :

Comment minimiser le taux de rebond de notre site Web?

Qu'est-ce que le taux de rebond?

Tout d'abord, nous devrions connaître le terme «taux de rebond»

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.

Lorsque des visiteurs ou des clients atterrissent sur notre site Web à partir de tout autre lien externe, par exemple une publicité, un résultat de recherche, un lien partagé, etc., mais s'ils ne visitent pas les liens internes du site. Cela augmentera le taux de rebond car le serveur de Google Analytics ne sera pas déclenché en raison de l'absence d'engagement.

Cela va donc réduire notre classement dans les résultats des moteurs de recherche, ce qui est certainement une grande perte pour la croissance de notre site Web..

Quand le taux de rebond compte

Nous devons garder à l'esprit que si l'objectif de notre site Web est de partager des informations, le rebond n'a pas d'importance pour nous. Prenons un exemple si notre page Web donne des informations textuelles et

Mais le taux de rebond compte vraiment si nous avons hâte d'engager de plus en plus de visiteurs actifs sur nos sites.

La principale raison du taux de rebond

  • Le site Web prend plus de temps à charger.
  • Mauvaise interface utilisateur et gestion du contenu.
  • L'interface utilisateur de la page de destination est complexe et difficile à comprendre pour tous les types d'utilisateurs.
  • Les visiteurs n'ont pas obtenu les informations de la manière intelligente qu'ils recherchaient.
  • Les liens internes de notre site Web ne sont pas clairement mis en évidence pour les visiteurs.
  • Popup indésirable sur les pages de destination.

Comment mesurer le taux de rebond

Google fournit de nombreux services utiles pour notre site Web. Pour mesurer le taux de rebond, nous pouvons utiliserhttps://analytics.google.com/

Pour utiliser ces outils, nous avons juste besoin d'un compte Google et lions notre site Web à Google Analytics. Remarque: Si vous avez besoin d'aide pour utiliser cet outil, veuillez écrire la requête dans la zone de commentaire donnée au bas de la page.

Selon Google

Le taux de rebond est une session d'une seule page divisée par toutes les sessions ou le pourcentage de toutes les sessions de votre site dans lequel les utilisateurs n'ont consulté qu'une seule page et n'ont déclenché qu'une seule demande au serveur Analytics. Comment minimiser le taux de rebond de notre site Web?

Une bonne page de destination

Une page de destination est la première page où nos visiteurs entrent dans notre site Web en cliquant sur les liens des résultats des moteurs de recherche.Groupe de connaissances?is a good example of the landing page.

Réduisez le temps de chargement des pages

En tant qu'utilisateur, nous pouvons savoir à quel point il est irritant de parcourir les pages lentes. Il suffit aux visiteurs d'appuyer sur le bouton Retour si le chargement d'une page prend plus de 5 secondes. Les scripts tiers indésirables sur notre site Web augmentent également le temps de chargement des pages. Si nous montrons une image non optimisée, le chargement prend également plus de temps.

Conseils:?Selon Google, un bon score pour la vitesse de la page est de 85 ou plus. Nous pouvons connaître la vitesse de nos pages en utilisant l'outil Google Analytics.

Supprimer les pop-ups indésirables

Les pop-ups et les publicités indésirables sur les pages sont également responsables de l'augmentation du taux de rebond.

Test AB

AB Testing est une expérience utile où deux ou plusieurs modèles de la même page seront affichés de manière aléatoire aux visiteurs. En consultant le rapport de l'AB Testing, nous pouvons analyser quelle conception a mieux fonctionné et a donné plus de conversion.

CTA: Appel à l'action

Le CTA est comme un piège caché ou des appâts sur notre page de destination.


Erreur GitAhead: tous les fichiers modifiés ne sont pas sélectionnés par le bouton 'Stage All'

Objectifs du blog

Pour savoir comment sélectionner les fichiers modifiés à déployer sur le serveur à l'aide de GitAhead. Généralement, en cliquant sur le bouton "Sélectionner tout" tous les fichiers modifiés sélectionnés et le bouton "Sélectionner tout" désactivé automatiquement. Mais pour certains fichiers, il ne sera pas sélectionné et si vous essayez de le faire manuellement, il ne vous laissera pas le faire. Et il montrera également ces fichiers comme "partiellement mis en scène". Vous pouvez voir dans la capture d'écran ci-dessous:

Pour résoudre ce problème, vous devez suivre les étapes ci-dessous:

Étape 1 : Faites un clic droit sur tout ce fichier et cliquez sur "Unset Executable" comme indiqué dans la capture d'écran ci-dessous:


Étape 2 : Maintenant, cliquez sur le bouton "Tout mettre en scène", et maintenant il mettra en scène tous les fichiers. Vous pouvez maintenant valider le serveur avec succès.


Comment configurer le cryptage et le décryptage entre Android et l’application Web ASP.Net ?

Dans ce chiffrement, nous allons utiliser une clé secrète pour chiffrer la chaîne. L’algorithme utilisé sera AES avec le mode CBC (Cipher Block Chaining).

Le code C# utilisera le rembourrage PKCS7, car PKCS5 n’y est pas disponible. Dans Android, il utilise le rembourrage PKCS5 en interne, même si nous spécifions le rembourrage PKCS7 dans la transformation de chiffrement. Nous spécifions donc également le mode de remplissage PKCS5. Lorsqu’ils sont testés, ils produisent tous les deux les mêmes résultats corrects.

Dans cette méthode de chiffrement, une clé unique est utilisée à la fois pour la clé secrète et le sel.

Lors de l’utilisation de clés différentes pour la clé secrète et le sel, il y avait une certaine différence entre les versions encodées en Base64 du sel (ou vecteur d’initialisation). Les versions encodées en Base64 ont été créées par les codes Android et C#, et elles étaient différentes les unes des autres.

Pour surmonter cela, nous avons utilisé une clé unique qui servira à la fois de clé secrète et de sel.

Le code pour la partie Android est le suivant :

public class EncryptionUtils { chaîne finale privée characterEncoding = "UTF-8" ; chaîne finale privée cipherTransformation = "AES/CBC/PKCS5Padding" ; Chaîne finale privée aesEncryptionAlgorithm = "AES" ; public String encrypt(String plainText, String key) lance UnsupportedEncodingException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException { byte [] plainTextbytes = plainText.getBytes(characterEncoding); octet [] keyBytes = getKeyBytes(clé); // renvoie Base64.encodeToString(encrypt(plainTextbytes,keyBytes, keyBytes), Base64.DEFAULT); return Base64.encodeToString(encrypt(plainTextbytes,keyBytes, keyBytes), Base64.NO_WRAP); } chaîne publique déchiffrer (chaîne texte crypté, clé de chaîne) lance KeyException, GeneralSecurityException, GeneralSecurityException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException, IOException { byte [] cipheredBytes = Base64.decode(encryptedText, Base64.DEFAULT); octet[] keyBytes = getKeyBytes(clé); renvoie une nouvelle chaîne (décrypter (cipheredBytes, keyBytes, keyBytes), characterEncoding); } public byte [] decrypt( byte[] cipherText, byte[] key, byte [] initialVector) lance NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException { Cipher cipher = Cipher.getInstance(cipherTransformation); SecretKeySpec secretKeySpecy = new SecretKeySpec(key, aesEncryptionAlgorithm); IvParameterSpec ivParameterSpec = new IvParameterSpec(initialVector); cipher.init(Cipher.DECRYPT_MODE, secretKeySpecy, ivParameterSpec); cipherText = cipher.doFinal(cipherText); renvoie le texte chiffré ; } public byte[] encrypt(byte[] plainText, byte[] key, byte [] initialVector) lance NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException { Cipher cipher = Cipher.getInstance(cipherTransformation); SecretKeySpec secretKeySpec = new SecretKeySpec(clé, aesEncryptionAlgorithm); IvParameterSpec ivParameterSpec = new IvParameterSpec(initialVector); cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivParameterSpec); plainText = cipher.doFinal(plainText); retourner plainText ; } private byte[] getKeyBytes(String key) lance UnsupportedEncodingException{ byte [] keyBytes= new byte[16] ; octet [] parameterKeyBytes= key.getBytes(characterEncoding); System .arraycopy(parameterKeyBytes, 0 , keyBytes, 0, Math.min(parameterKeyBytes.length, keyBytes.length)); retourner keyBytes ; } } Lecture recommandée : Copier dans le presse-papiers en JavaScript

Le code de la partie C# est le suivant :

// Crypte le texte en clair à l'aide d'une clé AES 128 bits et d'un chiffrement par bloc de chaîne et renvoie une chaîne encodée en base64 public string Encrypt(String plainText, String key) { var plainBytes = Encoding.UTF8.GetBytes(plainText); return Convert.ToBase64String(Encrypt(plainBytes, GetRijndaelManaged(key))); } public string Déchiffrer (chaîne texte crypté, clé de chaîne) { var octets cryptés = Convert.FromBase64String (texte crypté); return Encoding.UTF8.GetString(Decrypt(encryptedBytes, GetRijndaelManaged(key))); } public byte[] Encrypt(byte[] plainBytes, RijndaelManaged rijndaelManaged) { return rijndaelManaged.CreateEncryptor() .TransformFinalBlock(plainBytes, 0, plainBytes.Length); } public byte [] Décrypter (octet [] données cryptées, RijndaelManaged rijndaelManaged) { return rijndaelManaged.CreateDecryptor() .TransformFinalBlock (données cryptées, 0, données cryptées. Longueur); } 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 } ; }

Avec l’aide du code ci-dessus, on peut crypter une chaîne sur une plate-forme, puis la décrypter sur l’autre plate-forme, et vice-versa.

Lecture recommandée: ,warComment voir le code du fichier ‘.ctp’ aussi coloré que le fichier ‘.php’ dans NetBeans

Generate QR Code Using PHP

Le code QR est un type de code-barres bidimensionnel qui est abrégé en code de réponse rapide . Il s’agit d’une étiquette optique qui contient des informations sur l’article. Il est simplement attaché à l’article. Il contient des carrés noirs disposés dans une grille de carrés sur fond blanc.

Dans ce blog, nous apprendrons étape par étape comment générer du code QR en utilisant PHP. À l’aide d’un simple script PHP, vous pouvez générer un code QR pour le texte, le téléphone, l’URL, l’e-mail et les SMS.

Dans ce projet, vous devez créer deux fichiers :

  1. qrcode.php
  2. index.php

ÉTAPE 1 : Définissez la classe QrCode dans qrcode.php :

1. Créez une classe QrCode. Dans ce cours, nous définirons l’URL de l’API GOOGLE CHART et les fonctions permettant de générer le code QR pour le texte, le téléphone, l’URL, l’e-mail et les SMS.

classe QrCode { }

ÉTAPE 2 : Définissez l’URL de l’API du graphique Google dans la classe QrCode :

1. Nous créons des variables pour stocker l’URL de l’API Google Chart et les données utilisées pour créer le code QR.

class QrCode { //URL DE L'API GOOGLE CHART private $apiUrl = 'https://chart.apis.google.com/chart'; // DONNÉES POUR CRÉER UN QR CODE private $data; }

ÉTAPE 3 : Définissez les fonctions pour générer du code QR de différents types dans la classe QrCode :

Nous disposons des types et fonctions suivants pour lesquels nous pouvons générer le QR Code :

1. URL

// Fonction qui permet de générer le type d'URL du QR Code. public function URL($url = null) { $this->data = preg_match("#^https?\:\/\/#", $url) ? $url : "https://{$url}"; }

2.Texte

// Fonction qui est utilisée pour générer le type TEXTE du QR Code. public function TEXTE($text) { $this->data = $text; }

3. COURRIEL

// Fonction qui permet de générer le type EMAIL de QR Code. public function EMAIL($email = null, $subject = null, $message = null) { $this->data = "MATMSG:TO:{$email};SUB:{$subject};BODY:{$message}; ;"; }

4.TÉLÉPHONE

// Fonction qui est utilisée pour générer le type PHONE du QR Code. fonction publique TÉLÉPHONE($phone) { $this->data = "TEL:{$phone}"; }

5.SMS

// Fonction qui permet de générer le type SMS du QR Code. public function SMS($phone = null, $msg = null) { $this->data = "SMSTO:{$phone}:{$msg}"; }

6. CONTACT

// Fonction qui est utilisée pour générer le type CONTACT du QR Code. fonction publique CONTACT($name = null, $address = null, $phone = null, $email = null) { $this->data = "MECARD:N:{$name};ADR:{$address};TEL : {$téléphone};EMAIL :{$email};;"; }

ÉTAPE 4 : Définissez les fonctions pour enregistrer l’image du code QR dans la classe QrCode :

//Fonction utilisée pour enregistrer le fichier image qrcode. public function QRCODE($size = 400, $filename = null) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->apiUrl); curl_setopt($ch, CURLOPT_POST, vrai); curl_setopt($ch, CURLOPT_POSTFIELDS, "chs={$size}x{$size}&cht=qr&chl=" .

ÉTAPE 5 : Créez un nouveau fichier index.php.

1. Dans ce fichier nous appelons la fonction pour générer le QR Code de différents types que nous avons défini dans qrcode.php.

2. Pour générer le Code QR textuel vous devez appeler la fonction TEXT dans votre fichier index.php.

<?php // Inclut le fichier qrcode.php. inclure "qrcode.php" ; // Crée des objets $qc = new QRCODE(); // Créer un code texte $qc->TEXT("Knowband"); // Enregistrer le code QR $qc->QRCODE(400,"Knowband_text.png"); ?>

3. Pour générer le code QR URL, vous devez appeler la fonction URL dans votre fichier index.php.

<?php // Inclut le fichier qrcode.php. inclure "qrcode.php" ; // Crée des objets $qc = new QRCODE(); // Créer un code URL $qc->URL("Knowband.com"); // Enregistrer le code QR $qc->QRCODE(400,"Knowband_url.png"); ?>

4. Pour générer le code QR EMAIL, vous devez appeler la fonction EMAIL dans votre fichier index.php.

<?php // Inclut le fichier qrcode.php. inclure "qrcode.php" ; // Crée des objets $qc = new QRCODE(); // Créer un code EMAIL $qc->EMAIL("Knowband@test.com","Sujet","Message"); // Enregistrer le code QR $qc->QRCODE(400,"Knowband_email.png"); ?>

5. Pour générer le code QR PHONE, vous devez appeler la fonction PHONE dans votre fichier index.php.

<?php // Inclut le fichier qrcode.php. inclure "qrcode.php" ; // Crée des objets $qc = new QRCODE(); // Créer le code TÉLÉPHONE $qc->TÉLÉPHONE("1234567890"); // Enregistrer le code QR $qc->QRCODE(400,"Knowband_phone.png"); ?>

6. Pour générer le code QR SMS, vous devez appeler la fonction SMS dans votre fichier index.php.

<?php // Inclut le fichier qrcode.php. inclure "qrcode.php" ; // Crée des objets $qc = new QRCODE(); // Créer un code SMS $qc->SMS("1234567890"); // Enregistrer le code QR $qc->QRCODE(400,"Knowband_sms.png"); ?>

7. Pour générer le code QR CONTACT, vous devez appeler la fonction CONTACT dans votre fichier index.php.

<?php // Inclut le fichier qrcode.php. inclure "qrcode.php" ; // Crée des objets $qc = new QRCODE(); // Créer un code CONTACT $qc->CONTACT("knowband","Address","1234567890","knowband@test.com"); // Enregistrer le code QR $qc->QRCODE(400,"Knowband_contact.png"); ?>

ÉTAPE 6 : Exécutez le fichier de script (index.php) dans votre environnement :

Si tout se passe bien, le nom du fichier sera nommé “knowband_text.png” et celui que vous souhaitez télécharger et enregistrer sur votre ordinateur.

REMARQUE : Vous ne pouvez générer qu’un seul type de code QR à la fois.

Cliquez ici pour télécharger le code complet.

Avec plus de 13 ans d’excellence dans les technologies de l’information, nous fournissons des technologies de développement Web et d’applications sur divers frameworks. Vous pouvez également explorer une large gamme d’extensions de commerce électronique Prestashop, Opencart, WooCommerce, Shopify et Magento 2 prêtes à l’emploi.

Si vous avez des questions/suggestions, vous pouvez contacter notre portail d’assistance technique à notre adresse e-mail. support@knowband.com.

Jetez un oeil à notre module best-seller Supercheckout d’une page pour Prestashop warici:

Module complémentaire de paiement en une page Prestashop

Le paiement Prestashop One Page de Knowband simplifie le processus de paiement, améliorant l’expérience utilisateur et augmentant les conversions pour votre boutique en ligne.

Visitez ici

 

Comment voir le code de

NetBeans est l’un des meilleurs et puissants IDE pour tout développement Web, spécialement pour les frameworks PHP tels que ZenCart, OpenCart, CakePhp, etc. CakePhp utilise sa propre extension de fichier personnalisée pour ses fichiers View, à savoir * .ctp. NetBeans ne connaît pas ce fichier par défaut. Donc, il n'y a pas de code de couleur qui sera affiché lorsque ces types de fichiers sont ouverts dans NetBeans. Nous devons activer manuellement ces fonctionnalités. Voici les étapes pour activer la surbrillance pour les fichiers .ctpf de CakePHP. 1. Outils => Options

2. Divers => Fichiers

3. Cliquez sur le bouton Nouveau et tapez ctp. Puis cliquez sur Ok.

4. À partir du type de fichier associé (MIMI): Choisissez: text / x-php5.

5. Cliquez sur OK

Veuillez noter que : Redémarrez l'EDI si les modifications ne sont pas reflétées après avoir suivi les étapes ci-dessus.


How to get Amazon Orders using API

Objectif du blog

Après avoir lu ce blog, vous serez en mesure de comprendre comment le vendeur peut obtenir les commandes Amazon à l’aide de l’API.

Connaissons l'API de la commande

L'API des commandes Amazon aide les vendeurs à obtenir les détails de la commande et à synchroniser les commandes Amazon sur leur application personnalisée. Ceci est très utile pour récupérer les mises à jour des commandes en temps réel et les vendeurs peuvent également obtenir facilement les informations sur le statut des commandes (expédiées ou non expédiées) pour toutes les commandes à l'aide de l'API.

Comment synchroniser les commandes Amazon sur une application personnalisée

Tout d'abord, vous avez besoin des informations d'identification de l'API Amazon MWS (Market Place Web Service). Si vous n'en avez toujours pas, vous pouvez obtenir l'aide de ce blog

Pour récupérer des commandes Amazon chez vous, vous devez suivre les étapes ci-dessous:

1. Liste des commandes – Dans cette étape, vous devez envoyer une demande à Amazon pour obtenir les commandes d'Amazon pour un intervalle de temps particulier. Vous devez envoyer les données suivantes indiquées ci-dessous dans la demande:

mws.amazonservices.co.uk/Orders/2013-09-01? AWSAccessKeyId = XXXXXXXXXXXXX & Action = ListOrders & SellerId = XXXXXXXXXXXX // Écrivez ici votre identifiant marchand et SignatureVersion = 2 // écrivez ici votre signature & timestamp : i: s \ Z ", time ()) // Écrivez l'horodatage & Version = 2013-09-01 & Signature = 1234Knowband1234example1234 // Ici, vous devez écrire la signature & SignatureMethod = HmacSHA256 // Écrivez ici votre méthode de signature & LastUpdatedAfter = date ("Ymd \ TH: i: s \ Z", strtotime ('- heure 24')); // demande à Amazon & OrderStatus.Status.24 = Non expédié // d'obtenir les commandes pour les dernières heures 1 uniquement. Vous devez ici ajouter le statut pour lequel vous souhaitez récupérer les commandes & OrderStatus.Status.2 = PartiallyShipped & OrderStatus.Status.3 = Expédié & MarketplaceId.Id.1 = XXXXXXXXXXXXX AWSAccessKeyId = XXXXXXXXXXXXXXXXXXXX

Dans la réponse, vous obtiendrez un fichier de flux de commandes contenant la liste des commandes passées sur Amazon au cours des dernières heures 24 et indiquant le statut de commande demandé. Voici l'exemple de fichier de flux de commandes.

<?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. Liste des articles de commande Dès la première étape, vous obtiendrez uniquement les détails de la commande (comme l'identifiant de commande Amazon, la date d'achat, etc.) et non les détails de l'article commandé (détail du produit commandé). Pour obtenir les détails de l'article de la commande, vous devez envoyer une demande distincte à Amazon. Vous devez envoyer une demande correspondant à chaque commande. Si vous avez besoin de détails sur les commandes 5 Amazon, vous devrez envoyer des demandes 5. La demande est donnée ci-dessous: par exemple $ Amazon_order_id = 112-5028700-7051869

mws.amazonservices.co.uk/Orders/2013-09-01? AWSAccessKeyId = XXXXXXXXXXXXXXXXXX & Action = ListOrderItems & SellerId = 'XXXXXXXXXXXXXX'; // écrivez ici votre identifiant de marchand, & 'AmazonOrderId' = $ Amazon_order_id // écrivez ici l'identifiant de la commande dont vous souhaitez obtenir les détails // vous devez écrire la signature, lorsque vous envoyez des demandes HTTP à AWS, vous devez signez les demandes afin qu'AWS puisse identifier qui a envoyé la demande & Signature = 1234KnowbandXNumXexample1234 & SignatureVersion = 1234 // Ecrivez ici votre version de signature & SignatureMethod = HmacSHA2 // Ecrivez ici votre méthode de signature & Timestamp = gmdate ("Ymd \ TH: i \ s" Z " , time ()) // Ecrit l'horodatage & Version = 256-2013-09

En réponse à la demande, vous obtiendrez le détail descriptif de la commande. L'échantillon est donné ci-dessous:

mws.amazonservices.co.uk/Orders/2013-09-01 <? xml version = "1.0"?> <ListOrderItemsResponse xmlns = "https://mws.amazonservices.com/Orders/2013-09-01-1-quot;>> ListOrderItemsResult> <OrderItems> <OrderItem> <QuantityOrdered> 2017 </ QuantityOrdered> <Title> Troisième short Manchester United pour enfants 18 / 0.00 </ Titre> <ShippingTax> <CodeVers> USD </ CodeVers> <Amount> 0.00 </ Amount> </ ShippingTax> <PromotionDiscount> <CurrencyCode> USD </ CurrencyCode> <Montant> 072 </ Montant> </ PromotionDiscount> <ConditionId> Nouveau </ ConditionId> <IsGift> false </ IsGift> <ASIN> B7XXUMX </ ASIN > <SellerSKU> x-69-96909 </ SellerSKU> <OrderItemId> 266 </ OrderItemId> <ProductInfo> <NumberOfItems> 22621871528658 </ NumberOfItems> </ ProductInfo> <GiftWrapTax> <CurrencyCode> USD 1 </ Amount> </ GiftWrapTax> <QuantityShipped> 0.00 </ QuantityShipped> <ShippingPrice> <CurrencyCode> USD </ CurrencyCode> <Amount> 0 </ Quantité> </ ShippingPrice> <GiftWrapPrice> <CodeCon> <CodeCon> > <Montant> XNU MX </ Amount> </ GiftWrapPrice> <ConditionSubtypeId> Nouveau </ ConditionSubtypeId> <ItemPrice> <CurrencyCode> USD </ CurrencyCode> <Amount> 19.95 </ Amount> </ ItemPrice> <ItemTax> > <Montant> 0.00 </ Montant> </ ItemTax> <ShippingDiscount> <CurrencyCode> USD </ CurrencyCode> <Montant> 29.49 </ Amount> </ ShippingDiscount> </ OrderItem> </ OrderItems> <AmazonOrderId> 0.00-0.00 Vous ne connaissez pas le type de fichier.

3. Créer des commandes Cette étape est la dernière étape et à partir de l'étape 1 & 2, vous obtenez tous les détails des commandes Amazon dont vous avez besoin pour créer des commandes sur votre application. En analysant les flux XML ci-dessus (ordre de liste et poste de commande de liste), vous pouvez créer des commandes dans votre application. Si une commande Amazon est déjà créée sur votre application, vous pouvez utiliser l'étape 1 pour mettre à jour le statut de la commande de cette commande.


Comment changer le statut de commande par défaut sur WooCommerce

Parfois, lors du développement d'un site Web de commerce électronique, vous devez vérifier automatiquement le statut du paiement et marquer le statut de la commande comme "Avoir complété un “”En attente"ou selon vos besoins. Un statut de commande par défaut est défini sur la base du paiement effectué. Les utilisateurs frontaux peuvent consulter le statut de leur commande sur la page Historique de leur compte. Dans ce blog, nous apprendrons comment modifier le statut de commande par défaut le Woo Commerce as "Facture à imprimer" pas à pas.

Étape 1: Créer un plugin personnalisé

Pour créer un plugin personnalisé sur votre site Web, suivez les étapes suivantes:

1. Accédez au dossier des plugins Word Press, dans notre cas il s’agit d’app / plugins. Créer un dossier en tant que "statut personnalisé“.

Note importante: Attribuez un nom unique à votre dossier (le nom des plugins par défaut de Word Press ne doit pas entrer en conflit avec le nom de votre plugin) en minuscules et en tirets.

2. Créez maintenant le fichier PHP principal de votre plugin. Pour ce faire, créez un fichier PHP dans votre dossier plug-in et donnez-lui le même nom que le nom du dossier. Dans notre cas, le nom du dossier est "customstatus" et le nom du fichier sera donc customstatus.php.

3. Configurez les informations de votre plugin. Copiez simplement le code ci-dessous dans le fichier customstatus.php.

/ **
?* Plugin Name: My First Plugin
?* Plugin URI: https://www.mywebsite.com/my-first-plugin
?* Description: The very first plugin that I have ever created.
?* Version: 1.0
?* Author: Your Name
?* Author URI: https://www.mywebsite.com
?*/

Veuillez noter que : Modifiez les détails tels que le nom de l'auteur, le nom du plugin, la description, etc. selon vos besoins.

4. C'est ça! Vous venez de terminer le nombre minimum d'étapes requises pour créer un plug-in Word Press. Vous pouvez maintenant l'activer à partir de l'onglet Plugins dans Word Press admin.

Etape 2: Ajouter du code dans votre plugin personnalisé

1. Nous devons maintenant créer une fonction et l’attacher à une action spécifique. Copiez simplement la fonction ci-dessous dans votre customstatus.php.

2. Puisque nous souhaitons mettre à jour le statut de la commande lors du paiement complet, ajoutez une action au hook 'woocommerce_payment_complete' comme indiqué ci-dessous dans le code en surbrillance. // COPIE LE CODE ENTIER DANS LE FICHIER customstatus.php.

# <editor-fold defaultstate = "collapsed" desc = "Statut par défaut de la facture à imprimer"> function action_woocommerce_payment_complete ($ order_id) {if (! $ order_id) return; $ order = wc_get_order ($ order_id); $ order-> update_status ('wc-print-invoice'); // Le statut de la commande sera mis à jour avec "Facture à imprimer". }; // ajoute l'action add_action ('woocommerce_payment_complete', 'action_woocommerce_payment_complete', 10, 3); # </ editor-fold>

3. Il suffit de sauvegarder votre fichier customstatus.php et le tour est joué. A partir de maintenant, le statut de la commande sera mis à jour avec "Facture à imprimer" à la fin du paiement.

NOTE UTILE: Si vous souhaitez mettre à jour le statut de la commande lorsque la page "Merci" ou "Checkout Success" est chargée, vous pouvez ajouter l'action sur le crochet "woocommerce_thankyou". Dans customstatus.php, remplacez add_action ('woocommerce_payment_complete', 'action_woocommerce_payment_complete', 10, 3); avec add_action ('woocommerce_thankyou', 'ggb_custom_change_order_status', 10,3);