मुख्य सामग्री के लिए छोड़ें
संस्करण: 1.x

गेटवे टेम्पलेट

गेटवे टेम्पलेट आपको केवल POS के लिए अपना भुगतान गेटवे बनाने की शुरुआत देता है। यह एक PHP फ़ाइल वाला काम करने योग्य WordPress प्लगइन बनाता है, जिसे आप इंस्टॉल करके अपनी ज़रूरत के अनुसार अनुकूलित कर सकते हैं।

सुविधाएँ​

न्यूनतम कोड

केवल ज़रूरी चीज़ों वाली एक PHP फ़ाइल — पढ़ने और संशोधित करने में आसान

केवल POS

वेब चेकआउट में डिफ़ॉल्ट रूप से अक्षम, WCPOS सेटिंग के ज़रिए सक्षम

स्वचालित सेटअप

एक शेल स्क्रिप्ट आपके लिए सभी प्लेसहोल्डर बदलती है

GitHub रिलीज़

संस्करण अपडेट पुश करें और GitHub Actions डाउनलोड करने योग्य ZIP बनाएगा

शुरू करें​

1

टेम्पलेट रिपॉज़िटरी क्लोन करें

git clone https://github.com/wcpos/woocommerce-gateway-template.git
cd woocommerce-gateway-template

या अपनी प्रति बनाने के लिए GitHub रिपॉज़िटरी पर इस टेम्पलेट का उपयोग करें बटन पर क्लिक करें।

2

सेटअप स्क्रिप्ट चलाएँ

./create-gateway.sh

स्क्रिप्ट कुछ विवरण पूछती है — आपके गेटवे का नाम, संक्षिप्त विवरण और आपका GitHub उपयोगकर्ता नाम — फिर आपकी पसंद की डायरेक्टरी में इस्तेमाल के लिए तैयार प्लगइन बनाती है।

3

प्लगइन इंस्टॉल करें

आपके पास दो विकल्प हैं:

विकल्प A — फ़ोल्डर सीधे कॉपी करें (यदि आपके पास सर्वर का एक्सेस है): बने हुए गेटवे फ़ोल्डर को अपनी साइट की wp-content/plugins/ डायरेक्टरी में कॉपी करें।

विकल्प B — ZIP बनाकर अपलोड करें (अधिकांश लोगों के लिए सबसे आसान):

  1. बने हुए फ़ोल्डर को .zip फ़ाइल में संपीड़ित करें
  2. WordPress में प्लगइन्स > नया जोड़ें > प्लगइन अपलोड करें पर जाएँ
  3. ZIP फ़ाइल चुनें और अभी इंस्टॉल करें पर क्लिक करें
4

WCPOS में सक्षम करें

  1. WP Admin > POS > सेटिंग्स > चेकआउट पर जाएँ
  2. सूची में अपना नया गेटवे ढूँढें और उसे सक्षम करें
नोट

डिफ़ॉल्ट रूप से सामान्य वेब चेकआउट में गेटवे अक्षम होता है। POS में कौन से गेटवे दिखेंगे, यह WCPOS अपनी सेटिंग के ज़रिए नियंत्रित करता है।

मैन्युअल सेटअप​

यदि आप स्क्रिप्ट का उपयोग नहीं करना चाहते, तो प्लेसहोल्डर स्वयं बदल सकते हैं। हर फ़ाइल को टेक्स्ट एडिटर में खोलें और निम्नलिखित खोजकर बदलें:

प्लेसहोल्डरक्या दर्ज करेंउदाहरण
{{GATEWAY_NAME}}आपके गेटवे का प्रदर्शन नामनकद भुगतान
{{GATEWAY_SLUG}}URL-सुरक्षित पहचानकर्ता (छोटे अक्षर, हाइफ़न)cash-payment
{{GATEWAY_DESCRIPTION}}गेटवे का संक्षिप्त विवरणWCPOS में नकद भुगतान स्वीकार करें
{{GATEWAY_DEFAULT_DESCRIPTION}}चेकआउट के समय कैशियर को दिखाया जाने वाला पाठबिक्री केंद्र पर नकद भुगतान करें
{{GITHUB_USERNAME}}आपका GitHub उपयोगकर्ता नामkilbot
{{REPO_NAME}}आपकी रिपॉज़िटरी का नामcash-payment-gateway
{{AUTHOR_NAME}}आपका नामkilbot
{{GATEWAY_ID}}हाइफ़न के बजाय अंडरस्कोर वाला slugcash_payment
{{GATEWAY_CLASS_NAME}}हर शब्द का पहला अक्षर बड़ा, शब्द अंडरस्कोर से जुड़ेCash_Payment
{{GATEWAY_FUNCTION_PREFIX}}Gateway ID जैसा हीcash_payment

फिर wcpos-{{GATEWAY_SLUG}}.php का नाम बदलकर अपने slug के अनुरूप रखें (उदाहरण के लिए, wcpos-cash-payment.php)।

टीप

सेटअप स्क्रिप्ट नाम और slug से GATEWAY_ID, GATEWAY_CLASS_NAME और GATEWAY_FUNCTION_PREFIX अपने-आप निकालती है, इसलिए मैन्युअल सेटअप करते समय ही इनके बारे में सोचने की ज़रूरत है।

यह कैसे काम करता है​

बना हुआ प्लगइन WooCommerce भुगतान गेटवे क्लास पंजीकृत करता है। ध्यान रखने योग्य मुख्य बातें:

  • $this->enabled = 'no' — गेटवे वेब चेकआउट में छिपा रहता है। आपकी POS सेटिंग के आधार पर WCPOS इसे POS में सक्षम करता है।
  • process_payment() — $order->payment_complete() को कॉल करता है, जो ऑर्डर को भुगतान किया हुआ चिह्नित करता है और स्टॉक घटाने का काम अपने-आप संभालता है।
  • init_form_fields() — WooCommerce सेटिंग में दिखने वाले शीर्षक और विवरण फ़ील्ड परिभाषित करता है।

अपने गेटवे को अनुकूलित करना​

भुगतान फ़ील्ड जोड़ना​

यदि आपके गेटवे को कैशियर से इनपुट चाहिए (उदाहरण के लिए, संदर्भ संख्या), तो payment_fields() मेथड को ओवरराइड करें:

public function payment_fields() {
if ( $this->description ) {
echo wpautop( wptexturize( $this->description ) );
}

woocommerce_form_field( 'my_gateway_reference', array(
'type' => 'text',
'label' => __( 'Reference Number', 'your-text-domain' ),
'required' => true,
) );
}

इसके बाद आप सबमिट किया गया मान process_payment() के ज़रिए $_POST['my_gateway_reference'] में पढ़ सकते हैं। किसी भी इनपुट को sanitize_text_field() से साफ़ करना न भूलें।

भुगतान का व्यवहार बदलना​

डिफ़ॉल्ट टेम्पलेट ऑर्डर को तुरंत भुगतान किया हुआ चिह्नित करता है। यदि आपके कार्यप्रवाह में भुगतान बाद में करना हो (जैसे चालान के मामले में), तो payment_complete() को स्थिति अपडेट से बदलें:

public function process_payment( $order_id ) {
$order = wc_get_order( $order_id );

// Set to pending — the customer will pay later.
$order->update_status( 'pending', __( 'Awaiting payment', 'your-text-domain' ) );

// Stock must be reduced manually when not using payment_complete().
wc_reduce_stock_levels( $order_id );

return array(
'result' => 'success',
'redirect' => $this->get_return_url( $order ),
);
}

बदलाव करना और अपडेट करना​

गेटवे इंस्टॉल करने के बाद, भुगतान लॉजिक समायोजित करने के लिए आप प्लगइन फ़ाइल संपादित करते रह सकते हैं। अपडेट किया गया संस्करण इंस्टॉल करने के लिए:

  1. बनी हुई डायरेक्टरी में wcpos-your-slug.php संपादित करें
  2. प्लगइन हेडर में Version: संख्या अपडेट करें (उदाहरण के लिए, 0.1.0 को 0.2.0 करें)
  3. फ़ोल्डर को ZIP करें और प्लगइन्स > नया जोड़ें > प्लगइन अपलोड करें के ज़रिए फिर से अपलोड करें, या फ़ोल्डर को सीधे wp-content/plugins/ में बदलें
टीप

जब आप उसी प्लगइन नाम वाली ZIP अपलोड करेंगे, तो WordPress मौजूदा प्लगइन बदलने के लिए पूछेगा — अपडेट करने हेतु मौजूदा को अपलोड किए गए से बदलें पर क्लिक करें।

GitHub के साथ स्वचालित रिलीज़​

यदि आप अपना गेटवे GitHub रिपॉज़िटरी पर पुश करते हैं, तो टेम्पलेट में GitHub Actions वर्कफ़्लो शामिल है जो अपने-आप रिलीज़ बनाता है:

  1. प्लगइन हेडर में Version: संख्या अपडेट करें
  2. main ब्रांच में कमिट करें और पुश करें
  3. GitHub Actions संस्करण में बदलाव पहचानकर डाउनलोड करने योग्य ZIP के साथ नई रिलीज़ बनाता है

इसके बाद अन्य उपयोगकर्ता आपकी रिपॉज़िटरी के रिलीज़ पेज से ZIP डाउनलोड कर सकते हैं और उसे किसी भी WordPress प्लगइन की तरह इंस्टॉल कर सकते हैं।

समस्या निवारण​

गेटवे POS में दिखाई नहीं देता
  • जाँचें कि प्लगइन WP Admin > प्लगइन्स में सक्रिय है
  • WP Admin > POS > सेटिंग्स > चेकआउट पर जाएँ और सुनिश्चित करें कि गेटवे सक्षम है
  • पुष्टि करें कि WooCommerce इंस्टॉल और सक्रिय है
गेटवे वेब चेकआउट में दिखाई देता है
  • सुनिश्चित करें कि गेटवे कंस्ट्रक्टर में $this->enabled = 'no'; सेट है
  • POS अनुरोधों के लिए WCPOS इस सेटिंग को ओवरराइड करता है, इसलिए गेटवे केवल POS में दिखना चाहिए
ऑर्डर 'Processing' में रहते हैं, 'Completed' नहीं होते
  • WooCommerce उत्पाद के प्रकारों के आधार पर ऑर्डर की स्थिति तय करता है। भौतिक उत्पादों वाले ऑर्डर "Processing" में रहते हैं — यह WooCommerce का सामान्य व्यवहार है। केवल पूरी तरह वर्चुअल या डाउनलोड करने योग्य उत्पादों वाले ऑर्डर अपने-आप "Completed" चिह्नित होते हैं।

आवश्यकताएँ​

WCPOS: POS चेकआउट के लिए Pro संस्करण आवश्यक है
WordPress: WooCommerce इंस्टॉल किया हुआ WordPress
PHP: गेटवे को अनुकूलित करने के लिए PHP का बुनियादी ज्ञान

संसाधन​

उदाहरण गेटवे​

ये मौजूदा गेटवे उसी दृष्टिकोण का अनुसरण करके बनाए गए थे और अच्छे संदर्भ हैं:

  • ईमेल चालान — एक चालान ईमेल भेजता है ताकि ग्राहक बाद में भुगतान कर सके
  • वेब चेकआउट — भुगतान के लिए वेब स्टोर पर पुनर्निर्देशित करता है