HDWebmobile बुकिंग और अपॉइंटमेंट्स
WooCommerce के माध्यम से बुक करने योग्य सेवाएं और अपॉइंटमेंट बेचें, जिसमें प्रति-स्लॉट क्षमता हो जो कभी भी ओवरसेल नहीं हो सकती।
विवरण
HDWebmobile बुकिंग और अपॉइंटमेंट्स किसी भी साधारण WooCommerce उत्पाद को बुक करने योग्य सेवा में बदल देता है। ग्राहक उत्पाद पृष्ठ पर उपलब्ध तिथि और समय स्लॉट चुनते हैं; बुकिंग उसी क्षण पुष्टि हो जाती है जब उनका ऑर्डर पूरा होता है, और वे इसे बाद में मेरे खाते के अंतर्गत देख या रद्द कर सकते हैं।
यह प्लगइन क्यों मौजूद है
एक प्रतिस्पर्धी बुकिंग प्लगइन (Amelia) में एक प्रमाणित IDOR/मास-असाइनमेंट भेद्यता थी (CVE-2026-2931, CVSS 8.8): इसका "मेरी बुकिंग प्रोफ़ाइल अपडेट करें" एंडपॉइंट क्लाइंट-आपूर्ति किए गए फ़ील्ड को स्वीकार करता था जो बुकिंग रिकॉर्ड को WordPress उपयोगकर्ता आईडी से जोड़ता था, बिना किसी जांच के कि यह अभी भी अनुरोधकर्ता के अपने खाते की ओर इशारा करता है -- जिससे कम-विशेषाधिकार वाला ग्राहक किसी भी WordPress उपयोगकर्ता का पासवर्ड रीसेट कर सकता था, जिसमें एक व्यवस्थापक भी शामिल था। यह प्लगइन उस भेद्यता वर्ग को निर्माण द्वारा बंद करता है:
- बुकिंग का स्वामी ठीक एक स्थान पर लिखा जाता है -- ऑर्डर पूरा होने पर, ऑर्डर के अपने ग्राहक आईडी से -- और फिर कभी नहीं। इस प्लगइन में कहीं भी कोई "बुकिंग अपडेट करें" कोड पथ नहीं है जो अनुरोध से ग्राहक आईडी, उपयोगकर्ता आईडी, या कोई समान फ़ील्ड स्वीकार करता हो।
- यह प्लगइन कभी भी WordPress पासवर्ड को नहीं छूता है। यहां कोई कोड पथ नहीं है जो
wp_set_password() या ऐसा कुछ भी कॉल करता हो -- ग्राहक का पासवर्ड पूरी तरह से WordPress कोर के अपने खाता विवरण स्क्रीन का ही रहता है।
- एक ग्राहक केवल अपनी खुद की बुकिंग देख या रद्द कर सकता है, जो डेटाबेस क्वेरी में ही उनके लॉग-इन खाते द्वारा सीमित होती है -- कभी भी अनुरोध से लिए गए आईडी द्वारा नहीं।
- प्रति-स्लॉट क्षमता एक परमाणु, रेस-कंडीशन-सुरक्षित दावे (डेटाबेस विशिष्टता बाधा) के साथ लागू की जाती है, इसलिए दो ग्राहक कभी भी एक ही स्लॉट में उसकी कॉन्फ़िगर की गई क्षमता से अधिक पुष्टि नहीं हो सकते। बुकिंग रद्द करने से उसका स्लॉट पुनः उपयोग के लिए सही ढंग से मुक्त हो जाता है, जबकि रद्द की गई पंक्ति ऑडिट इतिहास के लिए रखी जाती है।
विशेषताएं
- किसी भी साधारण उत्पाद को उसके स्वयं के उत्पाद डेटा > बुकिंग टैब से बुक करने योग्य सेवा में बदलें
- कॉन्फ़िगर करने योग्य उपलब्ध दिन, समय स्लॉट, लीड समय, और कितने दिन आगे की पेशकश करनी है
- प्रति-स्लॉट क्षमता -- एक स्लॉट भर जाने पर पेश किया जाना बंद हो जाता है
- ऑर्डर को पूर्ण चिह्नित करने पर बुकिंग स्वचालित रूप से पुष्टि हो जाती है
- मेरे खाते के अंतर्गत आगामी बुकिंग देखने और रद्द करने के लिए एक "बुकिंग्स" टैब
- यदि कार्ट में जोड़ने और चेकआउट के बीच कोई स्लॉट भर जाता है, तो ऑर्डर फिर भी सामान्य रूप से पूरा होता है और पुनर्निर्धारण में मदद के लिए व्यवस्थापक को ईमेल किया जाता है -- कोई बुकिंग कभी डबल-बुक नहीं होती
सीमाएं (v1)
- केवल साधारण उत्पाद -- कोई परिवर्तनीय-उत्पाद समर्थन नहीं
- कोई स्टाफ/संसाधन असाइनमेंट नहीं -- एक स्लॉट की क्षमता एक साझा संख्या है, प्रति-स्टाफ-सदस्य नहीं
- कोई कैलेंडर सिंक नहीं (Google Calendar, iCal, आदि)
स्थापना
- प्लगइन को
/wp-content/plugins/hdwebmobile-booking-appointments पर अपलोड करें, या WordPress प्लगइन्स स्क्रीन के माध्यम से इंस्टॉल करें।
- प्लगइन सक्रिय करें। WooCommerce पहले से इंस्टॉल और सक्रिय होना चाहिए।
- एक साधारण उत्पाद संपादित करें, उत्पाद डेटा के अंतर्गत उसका नया "बुकिंग" टैब खोलें, और उपलब्धता कॉन्फ़िगर करें।
लाइसेंस
GPLv2 या बाद का संस्करण। देखें LICENSE।