Jak stworzyć bramkę płatności WooCommerce
Opublikowany: 2021-04-26Czy chcesz stworzyć bramkę płatności WooCommerce, która akceptuje niestandardową opcję płatności? W tym samouczku chcę krótko pokazać, jak utworzyć bramkę płatności w WooCommerce, aby umożliwić klientom płacenie przez tę niestandardową bramkę płatności WooCommerce.
Możliwe jest stworzenie własnej niestandardowej bramki płatności. Można to osiągnąć na 2 sposoby. Możesz użyć wtyczki lub niestandardowego kodu.
Należy jednak pamiętać, że wtyczki spowodują rozdęcie witryny. Dlatego użyjemy niestandardowego fragmentu kodu.
Omówimy szczegółowo każdy krok, aby umożliwić nowicjuszom korzystanie z tej metody.
Jak stworzyć bramkę płatności WooCommerce
W tym poście stworzymy wtyczkę, aby dodać nową bramkę płatności. Oznacza to, że musisz mieć umiejętności programistyczne, aby to zrobić.
Rozszerzymy klasę WooCommerce. WooCommerce udostępnia nam kilka podstawowych klas, takich jak bramka płatności czy klasy e-mail.
Zajęcia te można rozbudowywać o własną funkcjonalność, co pozwala zaoszczędzić czas na rozwój. Zapewnia również, że Twoja wtyczka działa w standardowy sposób.
Klasa WC_Payment_Gateway
Klasa WC_Payment_Gateway rozszerza to, aby zapewnić nam strukturę i funkcje, które będą specyficzne dla metod płatności, takie jak możliwość uzyskania sum zamówienia lub adres URL strony z podziękowaniami.
Możemy skorzystać ze struktury, jeśli rozszerzymy tę klasę. To obsłuży dla nas niektóre funkcje, w tym uzyskanie tytułu i opisu oraz wyświetlenie ich na stronie kasy.
Należy zauważyć, że wszystkie bramki płatności w WooCommerce rozpoczną się od rozszerzenia klasy WC_Payment_Gateway.
Oto kroki, które musisz wykonać:
1. Sprawdź, czy WooCommerce jest aktywny
Ponieważ będziemy rozszerzać klasę WooCommerce, musimy sprawdzić, czy jest aktywna:
// Make sure WooCommerce is active if ( ! in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) return;
2. Zbuduj swoją klasę dziecka
Aby to zrobić, najpierw musimy zapakować to w funkcję init i podłączyć do plugins_loaded później niż domyślny priorytet.
Po sprawdzeniu, czy WooCommerce jest aktywne, ładujemy naszą klasę po rdzeniu WooCommerce. To sprawia, że jest to dodatkowa kontrola przed krytycznymi błędami.
Zapewnia również dostępność klasy WC_Payment_Gateway. o rozszerz zajęcia, będziesz postępować zgodnie z formatem:
class My_Child_Class rozszerza The_Parent_Class { }
Oto jak to będzie wyglądać w naszej wtyczce:
/** * Offline Payment Gateway * @class WC_Gateway_Offline * @extends WC_Payment_Gateway * @version 1.0.0 * @package WooCommerce/Classes/Payment * @author Njengah */ add_action( 'plugins_loaded', 'wc_offline_gateway_init', 11 ); function wc_offline_gateway_init() { class WC_Gateway_Offline extends WC_Payment_Gateway { // You plugin code starts here } // end \WC_Gateway_Offline class }
3. Zbuduj bramę
Ponieważ mamy swoją klasę, musimy zbudować naszą funkcję __construct(). Gwarantuje to, że zmienne, które musimy uwzględnić w naszej klasie.
Oto wymagane zmienne:
- $this->id
- $this->ikona
- $this->has_fields = prawda lub fałsz (bool)
- $this->method_title
- $this->method_description
Po ustawieniu zmiennych konstruktor będzie potrzebował kilku innych funkcji.
Pola formularza zostaną ustawione w funkcji init_form_fields(). Ta funkcja dodaje wszystkie pola ustawień, takie jak włączenie bramy i dodanie tytułu.
$this->init_form_fields(); $this->init_settings();
4. Rozpocznij pola formularza
W tej sekcji stworzymy funkcję init_form_fields(), aby skonfigurować pola formularza dla naszej bramki płatności.
Funkcja nie robi nic w klasie nadrzędnej, ale upewnia się, że nie ma błędów krytycznych, jeśli jej nie zastąpisz.
Jednak nadamy mu pewną funkcjonalność w naszej klasie potomnej.
Podstawowymi polami, które powinniśmy uwzględnić to włączony tytuł i opis.
/** * Initialize Gateway Settings Form Fields */ public function init_form_fields() { $this->form_fields = apply_filters( 'wc_offline_form_fields', array( 'enabled' => array( 'title' => __( 'Enable/Disable', 'wc-gateway-offline' ), 'type' => 'checkbox', 'label' => __( 'Enable Offline Payment', 'wc-gateway-offline' ), 'default' => 'yes' ), 'title' => array( 'title' => __( 'Title', 'wc-gateway-offline' ), 'type' => 'text', 'description' => __( 'This controls the title for the payment method the customer sees during checkout.', 'wc-gateway-offline' ), 'default' => __( 'Offline Payment', 'wc-gateway-offline' ), 'desc_tip' => true, ), 'description' => array( 'title' => __( 'Description', 'wc-gateway-offline' ), 'type' => 'textarea', 'description' => __( 'Payment method description that the customer will see on your checkout.', 'wc-gateway-offline' ), 'default' => __( 'Please remit payment to Store Name upon pickup or delivery.', 'wc-gateway-offline' ), 'desc_tip' => true, ), 'instructions' => array( 'title' => __( 'Instructions', 'wc-gateway-offline' ), 'type' => 'textarea', 'description' => __( 'Instructions that will be added to the thank you page and emails.', 'wc-gateway-offline' ), 'default' => '', 'desc_tip' => true, ), ) ); }
5. Przetwórz płatność
To najważniejsza sekcja, jeśli chodzi o tworzenie bramki płatności. Musimy dodać funkcję do obsługi przetwarzania zamówienia, informującą WooCommerce, jaki powinien być status i dokąd klienci udają się po jego użyciu:
public function process_payment( $order_id ) { $order = wc_get_order( $order_id ); // Mark as on-hold (we're awaiting the payment) $order->update_status( 'on-hold', __( 'Awaiting offline payment', 'wc-gateway-offline' ) ); // Reduce stock levels $order->reduce_order_stock(); // Remove cart WC()->cart->empty_cart(); // Return thankyou redirect return array( 'result' => 'success', 'redirect' => $this->get_return_url( $order ) ); }
6. Dodaj informacje o bramce płatności do otrzymanych zamówień i wiadomości e-mail
Dodana przez nas bramka wymaga dalszych instrukcji, aby dokończyć płatność. Musimy upewnić się, że te instrukcje są wyświetlane zarówno na stronie z podziękowaniami, jak i w wiadomościach e-mail z zamówieniami, korzystając z metod pośredniczących thankyou_page() i email_instructions().
/** * Output for the order received page. */ public function thankyou_page() { if ( $this->instructions ) { echo wpautop( wptexturize( $this->instructions ) ); } } /** * Add content to the WC emails. * * @access public * @param WC_Order $order * @param bool $sent_to_admin * @param bool $plain_text */ public function email_instructions( $order, $sent_to_admin, $plain_text = false ) { if ( $this->instructions && ! $sent_to_admin && 'offline' === $order->payment_method && $order->has_status( 'on-hold' ) ) { echo wpautop( wptexturize( $this->instructions ) ) . PHP_EOL; } }
7. Dodaj do bramek płatności WooCommerce
Ostatnim krokiem jest upewnienie się, że bramka płatności jest dostępna w WooCommerce > Ustawienia > Kasa .
Wykorzystamy filtr woocommerce_payment_gateways, który da nam tablicę wszystkich dostępnych bramek. Oznacza to, że dodamy naszą bramę do tej tablicy, a następnie zwrócimy tablicę z dodaną bramą.
function wc_offline_add_to_gateways( $gateways ) { $gateways[] = 'WC_Gateway_Offline'; return $gateways; } add_filter( 'woocommerce_payment_gateways', 'wc_offline_add_to_gateways' );
Wniosek
To wszystko, co musisz zrobić, aby dodać niestandardową bramkę płatności. Po prostu sklonowaliśmy funkcjonalność bramki „czekowej”.
Jeśli integrujesz się z procesorem płatności, pamiętaj, że musisz uwzględnić publikowanie i otrzymywanie informacji od procesora płatności.
Jeśli ten proces jest zbyt złożony, możesz zatrudnić wykwalifikowanego programistę. Zapewni to, że nie zepsujesz swojej witryny.
Podobne artykuły
- Przekierowanie WooCommerce po realizacji transakcji: Przekierowanie na niestandardową stronę z podziękowaniami
- Przekierowanie WooCommerce po wylogowaniu [Najlepszy przewodnik]
- Jak dostosować strony produktów WooCommerce?
- Jak skonfigurować bezpłatną wysyłkę z minimalnymi wydatkami w WooCommerce?
- Jak zmienić ikony bramki płatności WooCommerce?
- Jak skonfigurować WooCommerce Bitcoin Checkout
- Jak dodać stronę kasy faktur WooCommerce
- Jak dodać aktywną klasę nawigacji na podstawie adresu URL
- Jak zintegrować Stripe z WooCommerce
- Jak usunąć przycisk kasy WooCommerce?
- Jak wysłać do Mpesa WooCommerce płatność za darmo?
- Jak ukryć ikonę PayPal na stronie kasy WooCommerce
- Jak dodać ikony płatności WooCommerce w stopce [HTML]
- Jak zmienić ikonę PayPal na stronie kasy WooCommerce?
- Jak dodać wyszukiwanie do strony sklepu w WooCommerce?
- Jak dodać listę życzeń w WooCommerce
- Jak sprawdzić, czy użytkownik jest zalogowany w WordPress
- Jak usunąć opcje płatności WooCommerce z kasy?
- Jak wyczyścić koszyk przy wylogowaniu w WooCommerce
- Jak zmienić punkty końcowe kasy WooCommerce