Jak dodać ustawienia niestandardowej wtyczki w menu ustawień WordPress?

Cel bloga:

Celem tego bloga jest pomoc w tworzeniu ustawień dowolnej wtyczki niestandardowej. Obecnie większość wtyczek zawiera ustawienia umożliwiające użytkownikom zmianę funkcjonalności wtyczki zgodnie z ich wyborem.


Na tym blogu tworzymy niestandardową wtyczkę w celach informacyjnych. Podstawowe wymagania dotyczące dodania ustawień wtyczki to:

  • Aby zarejestrować ustawienia wtyczki
  • Aby utworzyć stronę opcji dla wtyczki
  • Aby wyświetlić ustawienia wtyczki na stronie opcji

Kroki, aby dodać ustawienie wtyczki:

1.�Utwórz własny folder wtyczek w folderze „wtyczki” swojej witryny Woo Commerce. W przykładowym kodzie utworzyliśmy folder „custom-plugin”.

2.�Utwórz nowy plik PHP w folderze „custom-plugin”. Nazwa pliku musi być taka sama, jak w przypadku niestandardowego folderu wtyczek. W przykładowym kodzie utworzyliśmy plik “custom-plugin.php”.

3.�Musisz zarejestrować ustawienia każdego pola niestandardowej wtyczki. Ten krok zawiera białą listę opcji ustawień wtyczki (pola), które są używane do zapisywania danych ustawień wtyczki w tabeli wp_options. Tutaj zarejestrowałem ustawienie dla mojej niestandardowej wtyczki, jak pokazano poniżej, i dodałem ten kod do pliku „custom-plugin.php”.

/* * Nazwa wtyczki: Wtyczka niestandardowa * Opis: Ta wtyczka jest wtyczką niestandardową i została stworzona przez velsof * Wersja : 1.0.0 * Autor: 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');

Aby dowiedzieć się więcej o “register_setting” możesz sprawdzić dokument “https://developer.wordpress.org/reference/functions/register_setting/”

4. W tym kroku musisz utworzyć stronę opcji dla niestandardowej wtyczki i dodać opcję w podmenu ustawienia Word Press. W przykładowym kodzie napisaliśmy poniżej kod strony opcji i dodaliśmy go do pliku “custom-plugin.php”.

function custom_plugin_setting_page() { // add_options_page( string $page_title, string $menu_title, string $capability, string $menu_slug, wywoływalna $function = '' ) add_options_page('Niestandardowa wtyczka', 'Niestandardowe ustawienie wtyczki', 'manage_options', ' niestandardowy-adres-ustawienia-wtyczek', 'custom_page_html_form'); // custom_page_html_form to funkcja, w której napisałem kod HTML dla mojego niestandardowego formularza wtyczki. } add_action('admin_menu', 'custom_plugin_setting_page');

Po wykonaniu tego kroku będziesz mógł zobaczyć opcję niestandardowej wtyczki w ustawieniu Word press, jak pokazano na poniższym obrazku:

5. W tym kroku musisz utworzyć formularz, aby wyświetlić opcje (pola) na stronie ustawień wtyczki niestandardowej. Tutaj stworzyłem funkcję “custom_page_html_form”, jak pokazano poniżej i dodałem ją do pliku “custom-plugin.php”.

funkcja custom_page_html_form() { ?> Nagłówek strony z niestandardowymi ustawieniami wtyczek  Imię i nazwisko: "> Nazwa drugiego pola: "> Nazwa trzeciego pola: ">

Po wykonaniu tego kroku zostanie utworzony formularz niestandardowej wtyczki, a dane zostaną zapisane w bazie danych po kliknięciu przycisku „Zapisz zmiany”, jak pokazano poniżej:

Uwaga:�Jeśli pojawi się błąd „Nie znaleziono strony opcji” podczas zapisywania ustawień wtyczki niestandardowej. Następnie musisz wykonać następujące kroki: 1. Otwórz plik “options.php” (Lokalizacja pliku: wp\wp-admin\options.php). 2. Dodaj niestandardową grupę opcji wtyczki w tablicy $whitelist_options.

Przykład:

$whitelist_options['custom_plugin_options_group'] = array('nazwa_pierwszego_pola', 'nazwa_drugiego_pola', 'nazwa_trzeciego_pola');

Możesz pobrać przykładowy kod�tutaj.

Podsumowanie

Po przeczytaniu tego dokumentu będziesz mógł dodać ustawienia swojej niestandardowej wtyczki w menu ustawień WordPress.

Jak zintegrować Google reCAPTCHA z PHP?

 

W dzisiejszych czasach każdy chce pozbyć się spamu na swojej stronie internetowej, niezależnie od tego, czy jest to spam w komentarzach, wiadomościach spamowych, czy też ruchu spamowym w Twojej witrynie. Aby chronić swoją witrynę przed spamem, jednym z najlepszych i najłatwiejszych sposobów jest użycie Google reCAPTCHA.

Dawniej ludzie umieszczali na ekranie losową liczbę lub ciąg znaków i sprawdzali to po stronie serwera. Jednak ta metoda jest przestarzała i dla wielu użytkowników jest również czasochłonna, podczas gdy metoda Google reCAPTCHA jest łatwa w użyciu i zajmuje mniej czasu, co zapewnia lepszą wygodę użytkownika. Wystarczy jedno kliknięcie, aby udowodnić, że są ludźmi, a nie robotem. Google reCAPTCHA można bardzo łatwo zaimplementować w skrypcie PHP.

Zalecane przeczytanie: Jak zintegrować ochronę Google ReCaptcha w swoim sklepie PrestaShop?

Na tym blogu dowiesz się, jak zintegrować Google reCaptcha z PHP, w naszym przewodniku krok po kroku.

Krok 1: Aby pobrać klucz API Google reCAPTCHA

Aby otrzymać klucz API umożliwiający korzystanie z reCAPTCHA w PHP, musisz zarejestrować swoją witrynę pod adresem – https://www.google.com/recaptcha/admin. Aby uzyskać pomoc, poniżej znajdują się zrzuty ekranu:


Nazwa Użyj wybranej przez siebie etykiety, aby w przyszłości łatwo było rozpoznać witrynę. W tym polu możesz dodać nazwę swojej marki lub adres URL witryny, aby zwiększyć czytelność nazwy projektu.

typ reCAPTCHA: Wybierz dowolny typ reCAPTCHA, który wolisz dla swojej witryny. Obecnie dostępne są dwa typy, tj. reCAPTCHA v3 i reCAPTCHA v2. W przykładowym projekcie użyliśmy reCAPTCHA v2.

Domeny: W tym miejscu należy podać nazwę swojej witryny internetowej, dla której będziesz wdrażać funkcjonalność reCAPTCHA. Dotyczy to domen, które tu wpisujesz, a także ich subdomen. Na przykład rejestracja w witrynie abc.com rejestruje również witrynę xyz.abc.com.

Teraz wystarczy zaznaczyć pole wyboru Zaakceptuj Warunki korzystania z usługi reCAPTCHA i kliknij na przycisku Wyślij.

Teraz masz klucz witryny i tajny klucz do swojej witryny.

Krok 2: Aby zaimplementować Google reCaptcha w PHP, drugi krok to wdrożenie funkcjonalności reCAPTHA w Twojej witrynie:

  • Aby dodać reCAPTCHA w PHP, musisz najpierw dołączyć bibliotekę JavaScript reCAPTCHA do swojego kodu HTML.
    
    
  • Teraz dodaj ten kod HTML w miejscu, w którym chcesz wyświetlić widżet reCAPTCHA.
    
    
  • Zastąp „klucz_strony” kluczem witryny dostarczonym przez Google dla Twojej witryny.
  • To już gotowe, wystarczy odświeżyć swoją stronę, a zobaczysz widżet reCAPTCHA na swojej stronie.

Krok 3: Aby zweryfikować odpowiedź użytkownika

Teraz musisz sprawdzić odpowiedź, gdy użytkownik kliknie widżet reCAPTCHA. Poniżej znajduje się kod PHP służący do weryfikacji reakcji użytkownika:

sukces) { $succMsg = 'Twoja prośba o kontakt została pomyślnie przesłana.'; } else { $errMsg = 'Weryfikacja robota nie powiodła się, spróbuj ponownie.'; } } ?>

Dodaj swój aktualny tajny klucz do powyższego kodu i gotowe.

Pobierz przykładowy kod tutaj.

Zalecane przeczytanie: Dwa skuteczne moduły do ochrony przed spamerami i botami w sklepie PrestaShop

Knowband oferuje dodatek Google ReCaptcha dla różnych platform, w tym PrestaShop, i OpenCart. Moduł Google ReCaptcha to potężne narzędzie bezpieczeństwa, które chroni Twoją witrynę przed wpisami spamowymi, jednocześnie ułatwiając dostęp rzeczywistym użytkownikom.

Wtyczki Google ReCaptcha można używać do logowania, rejestracji, resetowania hasła, dobrze znanych formularzy kontaktowych i innych rzeczy. Obrazy są wyświetlane w dodatku Google ReCaptcha w ramach standardowych procesów sprawdzania poprawności, które pomagają identyfikować ludzi.

Ten moduł Google reCaptcha oferuje doskonałą wydajność i jest niezwykle konfigurowalny. Z zaplecza modułów Knowband sprzedawca elektroniczny może szybko dostosować dodatek Google reCaptcha.

Prestashop Dodatek Google ReCaptcha

PrestaShop Google reCaptcha firmy Knowband zwiększa bezpieczeństwo Twojego sklepu, integrując Google reCaptcha, zapobiegając spamowi i automatycznym botom.

Kupuj teraz

Ostatnie słowa:

Wdrożenie Google reCAPTCHA na stronach internetowych jest niezbędne ze względu na bezpieczeństwo. Pomaga odróżnić prawdziwych użytkowników od botów, zapobiegając spamowi i automatycznym atakom. Dzięki temu dane użytkowników są bezpieczne i zapewnia płynne działanie witryny. Blokując szkodliwy ruch, reCAPTCHA poprawia komfort użytkownika, dzięki czemu interakcje online są bezpieczniejsze i bardziej niezawodne.

Polecana lektura – Zwiększ bezpieczeństwo swojego sklepu PrestaShop dzięki najlepszym modułom PrestaShop firmy Knowband
Oprócz tego Google reCaptcha jest również kompatybilny z One Page Checkout firmy Knowband, chroniąc Cię przed oszustwami transakcyjnymi. To najlepszy sposób na zabezpieczenie Twojego sklepu przed oszustwami transakcyjnymi. Aby obejrzeć demo administratora i demo modułu Google reCaptcha, odwiedź naszą stronę sklep.

Nie pozwól, aby spamerzy zaszkodzili Twojej firmie!

 

Błąd MySQL: użytkownik określony jako definiujący (‘xyz’@’localhost’) nie istnieje

Cele bloga

Aby dowiedzieć się, jak rozwiązać problem „Użytkownik określony jako osoba definiująca (‘xyz’@’localhost’) nie istnieje” w MySQL. Może to być dowolna wartość zamiast „xyz”.

Ten błąd wystąpił, ponieważ zdefiniowałeś różnych użytkowników w Definerze i używasz innych kont w MySQL.

Więc podczas tworzenia wyzwalaczy powinieneś użyć “root@localhost” w Definerze. Wykonaj poniższe czynności, aby rozwiązać ten błąd:

Krok 1: Otwórz phpMyAdmin

Krok 2: Wybierz swoją bazę danych i tabelę

Krok 3: Kliknij na “Wyzwalaczezakładka ” od góry strony

Krok 4: Kliknij na “Edytuj”, aby edytować wyzwalacze.

Krok 5: Zmień Definer z xyz@localhost na root@localhost

Aby uzyskać więcej informacji, zobacz ten zrzut ekranu:

Jak zminimalizować współczynnik odrzuceń naszej witryny?

Co to jest współczynnik odrzuceń?

Po pierwsze, powinniśmy wiedzieć o terminie „współczynnik odrzuceń”

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.

Gdy odwiedzający lub klienci lądują w naszej witrynie z dowolnego innego zewnętrznego łącza, na przykład reklamy, wyniku wyszukiwania, udostępnionego linku itp., Ale jeśli nie odwiedzają wewnętrznych linków witryny. Zwiększy to współczynnik odrzuceń, ponieważ serwer Google Analytics nie zostanie uruchomiony z powodu braku zaangażowania.

Spowoduje to obniżenie naszego rankingu w wynikach wyszukiwania, co jest zdecydowanie wielką stratą dla rozwoju naszej witryny.

Gdy liczy się współczynnik odrzuceń

Należy pamiętać, że jeśli celem naszej witryny jest udostępnianie informacji, odesłanie nie ma dla nas znaczenia. Weźmy przykład, jeśli nasza strona internetowa zawiera informacje tekstowe i

Ale współczynnik odrzuceń naprawdę ma znaczenie, jeśli nie możemy się doczekać, aby coraz więcej aktywnych użytkowników było zaangażowanych w nasze witryny.

Głównym powodem współczynnika odrzuceń

  • Załadowanie strony zajmuje więcej czasu.
  • Zły interfejs użytkownika i zarządzanie treścią.
  • Interfejs użytkownika strony docelowej jest złożony, co nie jest łatwo zrozumiałe dla każdego typu użytkownika.
  • Odwiedzający nie uzyskali informacji w inteligentny sposób, którego szukali.
  • Wewnętrzne linki naszej strony internetowej nie są wyraźnie wyróżnione dla odwiedzających.
  • Niechciane wyskakujące okienko na stronach docelowych.

Jak zmierzyć współczynnik odrzuceń

Google zapewnia wiele przydatnych usług dla naszej witryny. Do pomiaru współczynnika odrzuceń możemy użyćhttps://analytics.google.com/

Aby korzystać z tych narzędzi, potrzebujemy tylko konta Google i połączymy naszą stronę internetową z Google Analytics. Uwaga: jeśli potrzebujesz pomocy w korzystaniu z tego narzędzia, napisz zapytanie w polu komentarza podanym na dole strony.

Według Google

Współczynnik odrzuceń to sesja jednostronicowa podzielona przez wszystkie sesje lub odsetek wszystkich sesji w Twojej witrynie, w której użytkownicy przeglądali tylko jedną stronę i wyzwalali tylko jedno żądanie do serwera Analytics. Jak zminimalizować współczynnik odrzuceń naszej witryny?

Dobra strona docelowa

Strona docelowa to pierwsza strona, na której odwiedzający wchodzą na naszą stronę internetową, klikając linki wyników wyszukiwania.Knowband?is a good example of the landing page.

Skróć czas ładowania strony

Jako użytkownik możemy wiedzieć, jak irytujące jest przeglądanie wolnych stron. Odwiedzający po prostu naciskają przycisk Wstecz, jeśli ładowanie strony trwa dłużej niż 5 sekund. Niepożądane skrypty osób trzecich w naszej witrynie również wydłużają czas ładowania strony. Jeśli wyświetlamy niezoptymalizowany obraz, ładowanie zajmuje więcej czasu.

Porady:?Według Google dobry wynik dla szybkości strony wynosi 85 lub więcej. Możemy wiedzieć o szybkości naszych stron za pomocą narzędzia Google Analytics.

Usuń niechciane wyskakujące okienka

Niepożądane wyskakujące okienka i reklamy na stronach są również odpowiedzialne za zwiększenie współczynnika odrzuceń.

Testowanie AB

Testowanie AB jest przydatnym eksperymentem, w którym dwa lub więcej wzorów tej samej strony będą wyświetlane losowo odwiedzającym. Widząc raport z testów AB, możemy przeanalizować, który projekt działał lepiej i dał większą konwersję.

CTA: Wezwanie do działania

CTA jest jak ukryta pułapka lub przynęty na naszej stronie docelowej.


Błąd GitAhead: wszystkie zmodyfikowane pliki nie są wybierane za pomocą przycisku „Stage All”

Cele bloga

Aby dowiedzieć się, jak wybrać zmodyfikowane pliki do wdrożenia na serwerze za pomocą GitAhead. Ogólnie, klikając przycisk „Wybierz wszystko” wszystkie wybrane zmodyfikowane pliki, a przycisk „Wybierz wszystko” wyłącza się automatycznie. Ale w przypadku niektórych plików nie zostanie wybrany, a jeśli spróbujesz to zrobić ręcznie, nie pozwoli ci to zrobić. I pokaże te pliki jako „częściowo zainscenizowane”. Możesz zobaczyć na poniższym zrzucie ekranu:

Aby rozwiązać ten problem, wykonaj następujące czynności:

Krok 1: Kliknij prawym przyciskiem myszy cały ten plik i kliknij „Unset Executable”, jak pokazano na zrzucie ekranu:


Krok 2: Teraz kliknij przycisk „Wszystkie etapy”, a teraz wszystkie sceny zostaną ustawione. Teraz możesz pomyślnie zatwierdzić na serwerze.


Jak skonfigurować szyfrowanie i deszyfrowanie między aplikacją internetową Android i ASP.Net?

W tym szyfrowaniu użyjemy tajnego klucza do zaszyfrowania ciągu. Zastosowanym algorytmem będzie AES z trybem CBC (Cipher Block Chaining).

Kod C# użyje dopełnienia PKCS7, ponieważ PKCS5 nie jest tam dostępny. W Androidzie używa wewnętrznie dopełnienia PKCS5, nawet jeśli określimy dopełnienie PKCS7 w transformacji szyfru. Tak więc określamy również tryb dopełniania PKCS5. Podczas testów oba dają te same prawidłowe wyniki.

W tej metodzie szyfrowania pojedynczy klucz jest używany zarówno jako klucz tajny, jak i sól.

Podczas używania różnych kluczy dla klucza tajnego i soli istniała pewna różnica między wersjami salt zakodowanymi Base64 (lub wektorem inicjującym). Wersje zakodowane w Base64 zostały utworzone przez kody Androida i C# i różniły się od siebie.

Aby temu zaradzić, użyliśmy jednego klucza, który będzie służył zarówno jako tajny klucz, jak i sól.

Kod części dla Androida wygląda następująco:

public class EncryptionUtils { prywatne końcowe String characterEncoding = "UTF-8"; private final String cipherTransformation = "AES/CBC/PKCS5Padding"; private final String aesEncryptionAlgorithm = "AES"; public String encrypt(String plainText, String key) generuje UnsupportedEncodingException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException { byte [] plainTextbytes = plainText.getBytes(characterEncoding); bajt [] keyBytes = getKeyBytes(klucz); // zwróć Base64.encodeToString(encrypt(plainTextbytes,keyBytes, keyBytes), Base64.DEFAULT); return Base64.encodeToString(encrypt(plainTextbytes,keyBytes, keyBytes), Base64.NO_WRAP); } public String decrypt(String zaszyfrowany tekst, klucz ciągu) zgłasza KeyException, GeneralSecurityException, GeneralSecurityException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException, IOException { byte [] cipheredBytes = Base64.decode(encryptedText, Base64.DEFAULT); byte[] keyBytes = getKeyBytes(klucz); zwróć nowy String (decrypt(cipheredBytes, keyBytes, keyBytes), characterEncoding); } public byte [] decrypt( byte[] cipherText, byte[] key, byte [] initialVector) zgłasza NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException { Cipher Transcipher = Cipher.getInstance);(cipherTransformation); SecretKeySpec secretKeySpecy = new SecretKeySpec(key, aesEncryptionAlgorithm); IvParameterSpec ivParameterSpec = new IvParameterSpec(initialVector); cipher.init(Cipher.DECRYPT_MODE, secretKeySpecy, ivParameterSpec); tekst zaszyfrowany = cipher.doFinal(zaszyfrowany tekst); zwróć tekst zaszyfrowany; } public byte[] encrypt(byte[] plainText, byte[] key, byte [] initialVector) zgłasza NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException { Cipher cipher = Cipher.getInstance);(cipherTransformation); SecretKeySpec secretKeySpec = new SecretKeySpec(key, aesEncryptionAlgorithm); IvParameterSpec ivParameterSpec = new IvParameterSpec(initialVector); cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivParameterSpec); zwykły tekst = cipher.doFinal(zwykły tekst); return zwykły tekst; } private byte[] getKeyBytes(String key) wyrzuca UnsupportedEncodingException{ byte [] keyBytes= new byte[16]; byte [] parametrKeyBytes= key.getBytes(znakKodowanie); System .arraycopy(parameterKeyBytes, 0 , keyBytes, 0, Math.min(parameterKeyBytes.length, keyBytes.length)); zwróć keyBytes; } } Zalecana lektura: Skopiuj do schowka w JavaScript

Kod części C# wygląda następująco:

// Szyfruje zwykły tekst za pomocą 128-bitowego klucza AES i szyfru blokowego łańcuchowego oraz zwraca ciąg publiczny zakodowany w base64 Encrypt(String plainText, String key) { var plainBytes = Encoding.UTF8.GetBytes(plainText); return Convert.ToBase64String(Encrypt(plainBytes, GetRijndaelManaged(klucz))); } public string Decrypt(String zaszyfrowany tekst, String klucz) { var zaszyfrowanyBytes = Convert.FromBase64String(encryptedText); return Encoding.UTF8.GetString(Decrypt(encryptedBytes, GetRijndaelManaged(klucz))); } public byte[] Encrypt(byte[] plainBytes, RijndaelManaged rijndaelManaged) { return rijndaelManaged.CreateEncryptor() .TransformFinalBlock(plainBytes, 0, plainBytes.Length); } public byte[] Decrypt(byte[] cryptoData, RijndaelManaged rijndaelManaged) { return rijndaelManaged.CreateDecryptor() .TransformFinalBlock(encryptedData, 0, cryptoData.Length); } public RijndaelManaged GetRijndaelManaged(String secretKey) { var keyBytes = new byte[16]; var secretKeyBytes = Kodowanie.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 }; }

Za pomocą powyższego kodu można zaszyfrować ciąg znaków na jednej platformie, a następnie odszyfrować go na drugiej platformie i odwrotnie.

Zalecane przeczytanie: Jak wyświetlić kod pliku „.ctp” tak kolorowy jak plik „.php” w NetBeans?

Generate QR Code Using PHP

Kod QR to rodzaj dwuwymiarowego kodu kreskowego, w skrócie Kod szybkiego reagowania . Jest to etykieta optyczna zawierająca informacje o przedmiocie. Jest po prostu przymocowany do przedmiotu. Zawiera czarne kwadraty ułożone w siatkę kwadratów z białym tłem.

Na tym blogu dowiemy się krok po kroku jak wygenerować kod QR przy użyciu PHP. Za pomocą prostego skryptu PHP możesz wygenerować kod QR dla tekstu, telefonu, adresu URL, e-maila i SMS-a.

W tym projekcie musisz utworzyć dwa pliki:

  1. qrcode.php
  2. index.php

KROK 1: Zdefiniuj klasę QrCode w qrcode.php:

1. Utwórz klasę QrCode. Na tych zajęciach zdefiniujemy adres URL API GOOGLE CHART oraz funkcje umożliwiające wygenerowanie kodu QR dla wiadomości tekstowych, telefonicznych, URL, e-mailowych i SMS-owych.

klasa QrCode { }

KROK 2: Zdefiniuj adres URL API wykresów Google w klasie QrCode:

1. Tworzymy zmienne przechowujące adres URL API wykresów Google oraz dane służące do utworzenia kodu QR.

class QrCode { //URL GOOGLE CHART API private $apiUrl = 'https://chart.apis.google.com/chart'; // DANE DO TWORZENIA KODU QR private $data; }

KROK 3: Zdefiniuj funkcje do generowania kodów QR różnych typów w klasie QrCode:

Mamy następujące typy i funkcje, w których możemy wygenerować kod QR:

1.URL

// Funkcja służąca do generowania typu URL kodu QR. Adres URL funkcji publicznej($url = null) { $this->data = preg_match("#^https?\:\/\/#", $url) ? $url: "https://{$url}"; }

2. tekst

// Funkcja służąca do generowania kodu QR typu TEKST. funkcja publiczna TEKST($tekst) { $this->data = $text; }

3. E-MAIL

// Funkcja służąca do generowania kodu QR typu EMAIL. funkcja publiczna EMAIL($email = null, $temat = null, $wiadomość = null) { $this->data = "MATMSG:TO:{$email};SUB:{$temat};BODY:{$wiadomość}; ;”; }

4.TELEFON

// Funkcja służąca do generowania kodu QR typu TELEFON. funkcja publiczna TELEFON($telefon) { $this->data = "TEL:{$telefon}"; }

5.SMS-y

// Funkcja służąca do generowania kodu QR typu SMS. funkcja publiczna SMS($phone = null, $msg = null) { $this->data = "SMSTO:{$phone}:{$msg}"; }

6. KONTAKT

// Funkcja służąca do generowania kodu QR typu KONTAKT. funkcja publiczna KONTAKT($nazwa = null, $adres = null, $telefon = null, $email = null) { $this->data = "MECARD:N:{$name};ADR:{$adres};TEL: {$telefon};EMAIL:{$e-mail};;"; }

KROK 4: Zdefiniuj funkcje zapisywania obrazu kodu QR w klasie QrCode:

//Funkcja używana do zapisywania pliku obrazu qrcode. funkcja publiczna QRCODE($rozmiar = 400, $nazwa pliku = null) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->apiUrl); curl_setopt($ch, CURLOPT_POST, prawda); curl_setopt($ch, CURLOPT_POSTFIELDS, "chs={$size}x{$size}&cht=qr&chl=" .

KROK 5: Utwórz nowy plik indeks.php.

1. W tym pliku wywołujemy funkcję generowania kodu QR różnych typów, które zdefiniowaliśmy w qrcode.php.

2. Aby wygenerować Kod QR tekstu musisz wywołać funkcję TEXT w swoim pliku Index.php.

<?php // Dołącz plik qrcode.php. dołącz „qrcode.php”; // Utwórz obiekty $qc = nowy QRCODE(); // Utwórz kod tekstowy $qc->TEXT("Knowband"); // Zapisz kod QR $qc->QRCODE(400,"Knowband_text.png"); ?>

3. Aby wygenerować kod QR URL, musisz wywołać funkcję URL w swoim pliku Index.php.

<?php // Dołącz plik qrcode.php. dołącz „qrcode.php”; // Utwórz obiekty $qc = nowy QRCODE(); // Utwórz kod URL $qc->URL("Knowband.com"); // Zapisz kod QR $qc->QRCODE(400,"Knowband_url.png"); ?>

4. Aby wygenerować kod QR EMAIL należy wywołać funkcję EMAIL w swoim pliku Index.php.

<?php // Dołącz plik qrcode.php. dołącz „qrcode.php”; // Utwórz obiekty $qc = nowy QRCODE(); // Utwórz kod EMAIL $qc->EMAIL("Knowband@test.com","Temat","Wiadomość"); // Zapisz kod QR $qc->QRCODE(400,"Knowband_email.png"); ?>

5. Aby wygenerować kod QR TELEFON należy wywołać funkcję TELEFON w swoim pliku Index.php.

<?php // Dołącz plik qrcode.php. dołącz „qrcode.php”; // Utwórz obiekty $qc = nowy QRCODE(); // Utwórz kod PHONE $qc->PHONE("1234567890"); // Zapisz kod QR $qc->QRCODE(400,"Knowband_phone.png"); ?>

6. Aby wygenerować kod QR SMS, należy wywołać funkcję SMS w pliku Index.php.

<?php // Dołącz plik qrcode.php. dołącz „qrcode.php”; // Utwórz obiekty $qc = nowy QRCODE(); // Utwórz kod SMS $qc->SMS("1234567890"); // Zapisz kod QR $qc->QRCODE(400,"Knowband_sms.png"); ?>

7. Aby wygenerować kod QR CONTACT należy wywołać funkcję KONTAKT w swoim pliku Index.php.

<?php // Dołącz plik qrcode.php. dołącz „qrcode.php”; // Utwórz obiekty $qc = nowy QRCODE(); // Utwórz kod KONTAKT $qc->CONTACT("knowband","Adres","1234567890","knowband@test.com"); // Zapisz kod QR $qc->QRCODE(400,"Knowband_contact.png"); ?>

KROK 6: Uruchom plik skryptu (index.php) w swoim środowisku:

Jeśli wszystko pójdzie dobrze, nazwa pliku zostanie nazwana „knowband_text.png” i inna, którą chcesz pobrać i zapisać na swoim komputerze.

UWAGA: Jednocześnie możesz wygenerować tylko 1 typ kodu QR.

Kliknij tutaj aby pobrać cały kod.

Dzięki ponad 13-letniemu doświadczeniu w dziedzinie technologii informatycznych zapewniamy technologie tworzenia stron internetowych i aplikacji w różnych frameworkach. Możesz także zapoznać się z szeroką gamą gotowych do użycia rozszerzeń eCommerce Prestashop, Opencart, WooCommerce, Shopify i Magento 2.

W przypadku pytań/sugestii możesz skontaktować się z naszym portalem pomocy technicznej pod naszym adresem e-mail support@knowband.com.

Zapoznaj się z naszym bestsellerowym modułem One Page Supercheckout dla Prestashop tutaj:

Dodatek do jednej strony kasy Prestashop

Prestashop One Page Checkout firmy Knowband upraszcza proces realizacji transakcji, poprawiając wygodę użytkownika i zwiększając konwersje w Twoim sklepie internetowym.

Odwiedź tutaj

 

Jak zobaczyć kod

NetBeans jest jednym z najlepszych i potężnych IDE dla każdego WebDevelopment, szczególnie najlepszym dla frameworków PHP, takich jak ZenCart, OpenCart, CakePhp itp. CakePhp używa własnego niestandardowego rozszerzenia dla swoich plików View, tj. * .Ctp. NetBeans domyślnie nie wie o tym pliku. Nie ma więc kodowania kolorami, gdy te typy plików zostaną otwarte w NetBeans. Musimy ręcznie włączyć te funkcje. Poniżej znajdują się kroki, aby włączyć wyróżnianie plików .ctp CakePHP. 1. Narzędzia => Opcje

2. Różne => Pliki

3. Kliknij przycisk Nowy i wpisz ctp. Następnie kliknij OK.

4. Ze skojarzonego typu pliku (MIMI): Wybierz: text / x-php5.

5. Kliknij OK.

Uwaga: Zrestartuj IDE, jeśli zmiany nie zostaną odzwierciedlone po wykonaniu powyższych kroków.


How to get Amazon Orders using API

Cel bloga

Po przeczytaniu tego bloga będziesz w stanie zrozumieć, w jaki sposób sprzedawca może uzyskać zamówienia Amazon za pomocą API.

Daj nam znać o interfejsie API zamówienia

Interfejs API zamówień Amazon pomaga sprzedawcom uzyskać szczegóły zamówienia i zsynchronizować zamówienia Amazon w ich niestandardowej aplikacji. Jest to bardzo pomocne przy pobieraniu aktualizacji zamówień w czasie rzeczywistym, a sprzedawcy mogą również łatwo uzyskać informacje o statusie zamówienia (wysłane lub nie wysłane) dla wszystkich zamówień za pomocą interfejsu API.

Jak zsynchronizować zamówienia Amazon na niestandardowej aplikacji

Przede wszystkim potrzebujesz poświadczenia interfejsu API Amazon MWS (Market Place Web Service). Jeśli nadal nie masz, możesz uzyskać pomoc od ten blog

Aby pobrać zamówienia Amazon, musisz wykonać następujące kroki:

1. Lista zamówień – W tym kroku musisz wysłać prośbę do Amazon, aby uzyskać zamówienia od Amazon na określony czas. Musisz wysłać następujące dane podane poniżej we wniosku:

mws.amazonservices.co.uk/Orders/2013-09-01? AWSAccessKeyId = XXXXXXXXXXXXXXXXX & Action = ListOrders & SellerId = XXXXXXXXXXXXXXXX // Tutaj wpisz swój identyfikator handlowca i SignatureVersion = 2 // Tutaj wpisz swoją wersję podpisu i znacznik czasu = gmdate THmd : i: s \ Z ", time ()) // Napisz znacznik czasu i wersję = 2013-09-01 i podpis = 1234Knowband1234example1234 // Tutaj musisz wpisać podpis i podpisMethod = HmacSHA256 // Tutaj wpisz metodę podpisu i datę ostatniej aktualizacji = później („Ymd \ TH: i: s \ Z”, strtotime ('- 24 godzina')); // prośba o otrzymanie zamówień na ostatnie 24 godzin tylko od Amazon & OrderStatus.Status.1 = Bez wysyłki // Tutaj musisz dodać status, dla którego chcesz pobrać zamówienia i OrderStatus.Status.2 = Częściowo wysłane i OrderStatus.Status.3 = Dostarczone i identyfikator sklepu 1 = XXXXXXXXXXXXX AWSAccessKeyId = XXXXXXXXXXXXXXXXXXXX

W odpowiedzi otrzymasz plik danych zamówienia, który będzie zawierał listę zamówień złożonych w Amazon w ciągu ostatnich godzin 24 i mających żądany status zamówienia. Oto przykładowy plik danych zamówienia zamówienia.

<?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. Lista Zamów przedmioty Od pierwszego kroku otrzymasz tylko szczegóły zamówienia (takie jak identyfikator zamówienia Amazon, data zakupu itp.), A nie szczegóły zamówienia (szczegóły zamówionego produktu). Aby uzyskać szczegółowe informacje o zamówieniu, musisz wysłać osobne zapytanie do Amazon. Musisz wysłać zapytanie odpowiadające każdemu zamówieniu. Jeśli potrzebujesz szczegółów dotyczących zamówień 5 Amazon, musisz wysłać prośby 5. Żądanie jest podane poniżej: np. $ Amazon_order_id = 112-5028700-7051869

mws.amazonservices.co.uk/Orders/2013-09-01? AWSAccessKeyId = XXXXXXXXXXXXXXXXXXXXXX & Action = ListOrderItems & SellerId = 'XXXXXXXXXXXXXX'; // Tutaj wpisz swój identyfikator sprzedawcy, a „AmazonOrderId” = $ Amazon_order_id // Tutaj wpisz identyfikator zamówienia, dla którego chcesz uzyskać szczegółowe informacje // Tutaj musisz napisać podpis, gdy wysyłasz żądania HTTP do AWS, musisz podpisz prośby, aby AWS mógł zidentyfikować, kto wysłał żądanie & Signature = 1234Knowband1234example1234 & SignatureVersion = 2 // Tutaj wpisz swoją wersję podpisu i SignatureMethod = HmacSHA256 // Tutaj wpisz metodę podpisu i znacznik czasu = gmdate ("Ymd \ TH: i: s \ Z" , time ()) // Napisz znacznik czasu i wersję = 2013-09-01

W odpowiedzi na zapytanie otrzymasz opisowy szczegół zamówienia. Próbka jest podana poniżej:

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> <QuantityOrders> 1 </QuantityOrders> <Title> Trzecie spodenki Manchester United Kids 2017 / 18 </Title> <ShippingTax> <CurrencyCode> USD </CurrencyCode> <Xmountm> XN </ShippingTax> <PromotionDiscount> <CurrencyCode> USD </CurrencyCode> <Amount> 0.00 </Amount> </PromotionDiscount> <ConditionId> Nowy </ConditionId> <IsGift> false </IsGift> <ASIN> B0.00N072QVAS > <SellerSKU> x-7-69 </SellerSKU> <OrderItemId> 96909 </OrderItemId> <ProductInfo> <NumberOfItems> 266 </NumberOfItems> </ProductInfo> <GiftWrapTax> <CurrencyCode> USD 22621871528658 </Amount> </GiftWrapTax> <QuantityShipped> 1 </QuantityShipped> <ShippingPrice> <CurrencyCode> USD </CurrencyCode> <Amount> 0.00 </Amount> </ShippingPrice> <GiftWrapPrice> <Currency > <Kwota> XNU MX </Amount> </GiftWrapPrice> <ConditionSubtypeId> Nowy </ConditionSubtypeId> <ItemPrice> <CurrencyCode> USD </CurrencyCode> <Amount> 0 </Amount> </ItemPrice> <ItemTax> <CurrencyCode> USD / > <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-ab7-d45da6espXNUMRRRRRRR.

3. Twórz zamówienia Ten krok jest ostatnim krokiem, a od kroku 1 i 2 uzyskałeś wszystkie szczegóły zamówień Amazon, których potrzebujesz, aby utworzyć zamówienia w swojej aplikacji. Analizując powyższe kanały XML (kolejność na liście i pozycja na liście), możesz tworzyć zamówienia w swojej aplikacji. Jeśli w Twojej aplikacji zostało już utworzone zamówienie Amazon, możesz użyć kroku 1, aby zaktualizować status zamówienia.


Jak zmienić domyślny status zamówienia na WooCommerce

Czasami podczas opracowywania witryny e-commerce należy automatycznie sprawdzić status płatności i oznaczyć status zamówienia jako „Zakończony“”Do czasu”lub zgodnie z wymaganiami. Domyślny stan zamówienia jest ustalany na podstawie dokonanej płatności. Użytkownicy Front-end mogą sprawdzić status swojego zamówienia na stronie Historia konta. W tym blogu dowiemy się, jak zmienić domyślny stan zamówienia na Woo Commerce jako „Faktura do wydrukowania" krok po kroku.

Krok 1: utwórz niestandardową wtyczkę

Aby utworzyć niestandardową wtyczkę w swojej witrynie, wykonaj następujące czynności:

1. Przejdź do folderu wtyczek Word Press, w naszym przypadku jest to aplikacja / wtyczki. Utwórz folder jako „customstatus“.

Ważna uwaga: Nadaj folderowi unikalną nazwę (domyślna nazwa wtyczki Word Press nie powinna kolidować z nazwą wtyczki), używając małych liter i myślników.

2. Teraz utwórz główny plik PHP wtyczki. Aby to zrobić, utwórz plik PHP w folderze wtyczki i nadaj mu taką samą nazwę jak nazwa folderu. W naszym przypadku nazwa folderu to „customstatus”, więc nazwa pliku to customstatus.php.

3. Skonfiguruj informacje o wtyczce. Wystarczy skopiować i wkleić poniższy kod do pliku 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
?*/

Uwaga: Edytuj szczegóły, takie jak nazwa autora, nazwa wtyczki, opis itp. Zgodnie z wymaganiami.

4. Otóż ​​to! Właśnie ukończyłeś minimalną liczbę kroków wymaganych do utworzenia wtyczki Word Press. Możesz go teraz aktywować na karcie Wtyczki w Word Press admin.

Krok 2: Dodaj kod do niestandardowej wtyczki

1. Teraz musimy stworzyć funkcję i podpiąć ją do określonej akcji. Po prostu skopiuj poniższą funkcję do pliku customstatus.php.

2. Ponieważ chcemy zaktualizować status zamówienia po zakończeniu płatności, dodaj akcję do haka „woocommerce_payment_complete”, jak podano poniżej w wyróżnionym kodzie. // KOPIUJ CAŁY KOD W PLIKU customstatus.php.

# <editor-fold defaultstate = "collapsed" desc = "Domyślny status jako faktura do wydrukowania"> funkcja action_woocommerce_payment_complete ($ order_id) {if (! $ order_id) return; $ order = wc_get_order ($ order_id); $ order-> update_status („wc-print-faktura”); // Status zamówienia zostanie zaktualizowany do „Faktury do wydrukowania”. }; // dodaj działanie add action („woocommerce_payment_complete”, „action_woocommerce_payment_complete”, 10, 3); # </editor-fold>

3. Po prostu zapisz plik customstatus.php i gotowe. Od teraz status zamówienia zostanie zaktualizowany do „Faktury do wydrukowania” po zakończeniu płatności.

PRZYDATNA UWAGA: Jeśli chcesz zaktualizować status zamówienia po załadowaniu strony „Dziękujemy” lub „Sukces kasy”, możesz dodać akcję na haku „woocommerce_thankyou”. W customstatus.php zamień add działań („woocommerce_payment_complete”, „action_woocommerce_payment_complete”, 10, 3); z dodatkowym działaniem („woocommerce_thankyou”, „ggb_custom_change_order_status”, 10,3);