{"id":398584,"date":"2026-11-04T19:40:31","date_gmt":"2026-11-04T19:40:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/vsptech-reseller\/"},"modified":"2026-11-04T19:57:46","modified_gmt":"2026-11-04T19:57:46","slug":"vsptech-reseller","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/vsptech-reseller\/","author":23598990,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.3","stable_tag":"1.0.3","tested":"7.1.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"VSPTECH Reseller","header_author":"VSP TECH","header_description":"Let visitors check domain names and order them through WooCommerce, with automatic registration once paid, through the VSP TECH Reseller API.","assets_banners_color":"fafafb","last_updated":"2026-11-04 19:57:46","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/vsptech.host\/api-revendeur","header_author_uri":"https:\/\/vsptech.host","rating":0,"author_block_rating":0,"active_installs":0,"downloads":29,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"vsptech","date":"2026-11-04 19:57:46","revision":3784692}},"upgrade_notice":{"1.0.3":"<p>Replace <code>[vsp_domain_search]<\/code> with <code>[vsptech_domain_search]<\/code> in your pages: the old shortcode name is removed.<\/p>","1.0.2":"<p>The &quot;Order now&quot; button now really adds the domain to the cart. To use it, set a domain product in the settings: until then the button stays hidden.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3784692,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3784692,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3784692,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3784692,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3784692,"resolution":"1","location":"assets","locale":"","width":1280,"height":960},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3784692,"resolution":"2","location":"assets","locale":"","width":1280,"height":560}},"screenshots":{"1":"Settings page: Reseller API key, default name servers, automatic registration and the WooCommerce product used to sell domains.","2":"The domain search bar added with the <code>[vsptech_domain_search]<\/code> shortcode."}},"plugin_section":[],"plugin_tags":[173240,239273,34901,24441,286],"plugin_category":[45],"plugin_contributors":[290745],"plugin_business_model":[],"class_list":["post-398584","plugin","type-plugin","status-publish","hentry","plugin_tags-cameroon","plugin_tags-domain-registration","plugin_tags-domain-reseller","plugin_tags-domain-search","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-vsptech","plugin_committers-vsptech"],"banners":{"banner":"https:\/\/ps.w.org\/vsptech-reseller\/assets\/banner-772x250.png?rev=3784692","banner_2x":"https:\/\/ps.w.org\/vsptech-reseller\/assets\/banner-1544x500.png?rev=3784692","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/vsptech-reseller\/assets\/icon-128x128.png?rev=3784692","icon_2x":"https:\/\/ps.w.org\/vsptech-reseller\/assets\/icon-256x256.png?rev=3784692","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/vsptech-reseller\/assets\/screenshot-1.png?rev=3784692","caption":"Settings page: Reseller API key, default name servers, automatic registration and the WooCommerce product used to sell domains."},{"src":"https:\/\/ps.w.org\/vsptech-reseller\/assets\/screenshot-2.png?rev=3784692","caption":"The domain search bar added with the <code>[vsptech_domain_search]<\/code> shortcode."}],"raw_content":"<!--section=description-->\n<p>VSPTECH Reseller connects your WordPress site to the Reseller API of <a href=\"https:\/\/vsptech.host\">VSP TECH<\/a>, a hosting and domain provider based in Cameroon.<\/p>\n\n<p><strong>Domain search.<\/strong> The <code>[vsptech_domain_search]<\/code> shortcode displays a search bar. Visitors type a domain name and see whether it is available, with the sale price from your VSP TECH reseller catalogue, in CFA francs (FCFA).<\/p>\n\n<p><strong>Order from the search (needs WooCommerce).<\/strong> Once you designate a WooCommerce product, an \"Order now\" button adds an available domain to the cart at your sale price. The price is read from the API on your server, and availability is checked again at that moment.<\/p>\n\n<p><strong>Automatic registration (needs WooCommerce).<\/strong> When an order is paid, the plugin registers the domain carried by each order line and adds the result to the order notes.<\/p>\n\n<p><strong>Connection status.<\/strong> The settings page shows whether the connection works, your VSP TECH wallet balance and your reseller tier.<\/p>\n\n<h4>What you need<\/h4>\n\n<ul>\n<li>A VSP TECH reseller account with an active white label offer. The API is included in the white label, and the API key is created in your Reseller area. These are paid VSP TECH services.<\/li>\n<li>A VSP TECH wallet balance, to pay for the domains that are registered.<\/li>\n<li>WooCommerce, only if you want to sell from the search or use automatic registration. The domain search works without it.<\/li>\n<\/ul>\n\n<h4>What this plugin does not do<\/h4>\n\n<ul>\n<li>It does not sell or set up web hosting. It handles domain names only.<\/li>\n<li>It does not create the WooCommerce product that sells domains: you create it once (see Installation).<\/li>\n<li>It does not transfer domains (see the FAQ).<\/li>\n<\/ul>\n\n<h3>Description en fran\u00e7ais<\/h3>\n\n<p>VSPTECH Reseller relie votre site WordPress \u00e0 l'API Revendeur de <a href=\"https:\/\/vsptech.host\">VSP TECH<\/a>, fournisseur d'h\u00e9bergement et de noms de domaine au Cameroun.<\/p>\n\n<p><strong>Recherche de domaine.<\/strong> Le shortcode <code>[vsptech_domain_search]<\/code> affiche une barre de recherche : le visiteur saisit un nom de domaine et voit s'il est disponible, avec le prix de vente de votre catalogue revendeur VSP TECH, en francs CFA (FCFA).<\/p>\n\n<p><strong>Commande depuis la recherche (WooCommerce requis).<\/strong> Une fois un produit WooCommerce d\u00e9sign\u00e9 dans les r\u00e9glages, le bouton \u00ab Commander maintenant \u00bb ajoute le domaine disponible au panier, \u00e0 votre prix de vente. Le prix est lu \u00e0 l'API par votre serveur et la disponibilit\u00e9 est rev\u00e9rifi\u00e9e \u00e0 ce moment-l\u00e0. Sans ce produit, ou si la boutique n'est pas en francs CFA (XAF), le bouton n'appara\u00eet pas.<\/p>\n\n<p><strong>Enregistrement automatique (WooCommerce requis).<\/strong> Quand une commande est pay\u00e9e, l'extension enregistre le domaine port\u00e9 par chaque ligne de commande et note le r\u00e9sultat sur la commande. Chaque domaine est pay\u00e9 avec votre solde VSP TECH, au prix revendeur, et son renouvellement automatique est activ\u00e9.<\/p>\n\n<p><strong>\u00c9tat de la connexion.<\/strong> La page de r\u00e9glages indique si la connexion fonctionne, votre solde et votre palier revendeur.<\/p>\n\n<p>Il vous faut un compte revendeur VSP TECH avec une marque blanche active (l'API y est incluse) et un solde suffisant. L'extension ne vend pas d'h\u00e9bergement, ne cr\u00e9e pas le produit WooCommerce \u00e0 votre place (voir Installation, en anglais) et ne transf\u00e8re pas de domaines.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin relies on the VSP TECH Reseller API, operated by VSP TECH, to check domains, read your account status and order domains. Requests go to <code>https:\/\/vsptech.host\/api\/reseller\/v1<\/code> (an administrator can change this address in the settings). A VSP TECH reseller account and API key are required. Nothing is sent until an API key is saved.<\/p>\n\n<p>Requests are made by your server. Visitors' browsers do not contact VSP TECH, and the plugin does not send visitors' IP addresses. Every request contains your API key and the plugin version.<\/p>\n\n<ul>\n<li><strong>When an administrator opens the settings page:<\/strong> a request for your balance and reseller tier. No other data is sent.<\/li>\n<li><strong>When someone uses the domain search or clicks \"Order now\":<\/strong> the domain name, to get its availability and price.<\/li>\n<li><strong>When a WooCommerce order is paid<\/strong> (with automatic activation on, for each order line carrying a domain): the domain name, the action, the one-year duration, your default name servers, the WooCommerce order number and the automatic renewal setting, plus the customer's billing details as the domain owner: first and last name, company, email, phone, address, city, state, postcode and country.<\/li>\n<\/ul>\n\n<p>VSP TECH passes domain owner details to its registrar and to the registry of the extension to register the domain, and some may appear in the public WHOIS directory. Tell your customers about this in your own privacy policy.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/vsptech.host\/legal-agreement\">VSP TECH terms and conditions<\/a><\/li>\n<li><a href=\"https:\/\/vsptech.host\/privacy-policy\">VSP TECH privacy policy<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install the plugin from Plugins &gt; Add New, or upload the <code>vsptech-reseller<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to Settings &gt; VSP TECH API and paste your Reseller API key (<code>vsprk_...<\/code>), available in your VSP TECH Reseller area.<\/li>\n<li>Set your default name servers (2 to 4), or leave the field empty to use those of your white label, otherwise those of VSP TECH.<\/li>\n<li>Keep \"Automatic activation\" ticked if paid WooCommerce orders should register domains, and untick it otherwise.<\/li>\n<li>Add the <code>[vsptech_domain_search]<\/code> shortcode to a page or post.<\/li>\n<li>To sell from the search: create one simple, virtual WooCommerce product with any price, set its catalog visibility to Hidden, and enter its ID in \"Domain product\" on the settings page. The store currency must be CFA francs (XAF). Your sale price replaces the product price in the cart, and the product can only be bought through the search form.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20without%20woocommerce%3F\"><h3>Does it work without WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. The settings page and the domain search shortcode work without WooCommerce. The \"Order now\" button and automatic registration need it, and the settings page tells you when WooCommerce is not active.<\/p><\/dd>\n<dt id=\"why%20is%20there%20no%20%22order%20now%22%20button%3F\"><h3>Why is there no \"Order now\" button?<\/h3><\/dt>\n<dd><p>The button only appears when the order can really go through: WooCommerce is active, the \"Domain product\" setting points to a published, in-stock product with a price, the store currency is XAF, and your catalogue has a sale price for that extension.<\/p><\/dd>\n<dt id=\"which%20price%20does%20the%20customer%20pay%3F\"><h3>Which price does the customer pay?<\/h3><\/dt>\n<dd><p>Your sale price for one year, read from the VSP TECH API by your server when the domain is added to the cart. Nothing sent by the browser can change it, and your purchase price is never sent to the browser. No currency conversion is applied.<\/p><\/dd>\n<dt id=\"how%20does%20the%20plugin%20know%20which%20domain%20to%20register%3F\"><h3>How does the plugin know which domain to register?<\/h3><\/dt>\n<dd><p>It reads the <code>domain<\/code> order item meta, or <code>_domain<\/code> if the first is empty. The \"Order now\" button adds <code>domain<\/code> to the order line for you. Another plugin can set it too. Lines without it are ignored.<\/p><\/dd>\n<dt id=\"what%20is%20charged%20when%20an%20order%20is%20paid%3F\"><h3>What is charged when an order is paid?<\/h3><\/dt>\n<dd><p>Each domain is registered for one year and paid immediately from your VSP TECH wallet, at your reseller price. What your customer paid you is not used. Automatic renewal is turned on, so VSP TECH charges one more year to your wallet when the domain expires. If your balance is too low, or the domain was taken after the customer ordered, nothing is charged and the failure is added to the order notes. With cash on delivery, registration starts when you mark the order Completed.<\/p><\/dd>\n<dt id=\"are%20domain%20transfers%20supported%3F\"><h3>Are domain transfers supported?<\/h3><\/dt>\n<dd><p>No. A transfer needs an authorization code, which the plugin does not send, so the API refuses it and the refusal is added to the order notes.<\/p><\/dd>\n<dt id=\"where%20is%20my%20api%20key%20stored%3F\"><h3>Where is my API key stored?<\/h3><\/dt>\n<dd><p>In the WordPress options table, without encryption. It is never displayed again after saving, and it is deleted when you click \"Remove the saved key\" or uninstall the plugin. We recommend limiting the key to your server's IP addresses in your Reseller area.<\/p><\/dd>\n<dt id=\"visitors%20see%20%22this%20page%20has%20expired%22\"><h3>Visitors see \"This page has expired\"<\/h3><\/dt>\n<dd><p>The search form uses a WordPress security token that lasts 12 to 24 hours. If a page cache keeps the page longer, exclude that page from the cache or shorten the cache lifetime.<\/p><\/dd>\n<dt id=\"does%20the%20older%20shortcode%20still%20work%3F\"><h3>Does the older shortcode still work?<\/h3><\/dt>\n<dd><p>No. Since version 1.0.3, use <code>[vsptech_domain_search]<\/code>. Pages that still contain <code>[vsp_domain_search]<\/code> show the shortcode as plain text until you replace it.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Every name the plugin declares now uses the <code>vsptech<\/code> prefix: the old <code>[vsp_domain_search]<\/code> shortcode is removed (use <code>[vsptech_domain_search]<\/code>) and order lines carry a <code>vsptech_domain<\/code> meta. Orders placed with earlier versions are still processed.<\/li>\n<li>Translations now come from translate.wordpress.org: the bundled French files are removed.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>New: the \"Order now\" button now adds the domain to the WooCommerce cart, through a product chosen in the settings. It replaces a button that displayed a confirmation without adding anything.<\/li>\n<li>The price is calculated on the server from the API, and availability is checked again when the domain is added.<\/li>\n<li>The button is hidden when WooCommerce is not active, no product is set, the store currency is not XAF, or no sale price exists.<\/li>\n<li>The order line carries the <code>domain<\/code> meta used by automatic registration.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Security: visitors no longer receive your purchase prices or API errors, the API key is no longer sent back to the settings page, the API URL must use HTTPS, and the search uses a nonce and validates its input.<\/li>\n<li>Enqueued scripts and styles, translatable strings with a French translation, settings deleted on uninstall.<\/li>\n<li>New <code>[vsptech_domain_search]<\/code> shortcode name. <code>[vsp_domain_search]<\/code> still works.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Domain search with add to cart, and automatic domain registration on paid WooCommerce orders, through the VSP TECH Reseller API.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/398584","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=398584"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/vsptech"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=398584"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=398584"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=398584"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=398584"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=398584"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=398584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}