| 开发者 | havenswift-hosting |
|---|---|
| 更新时间 | 2026年11月12日 23:26 |
| PHP版本: | 8.1 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
https://example.com - your WordPress sitehttps://clients.example.com - Keel
product if my plans have no slugs?The id, which Settings → Keel lists beside every plan. A plan converted from
another billing system often has no slug yet, and the storefront says so by
sending null - so the shortcode takes either, exactly as Keel's own order
form does, and a page and the order form it links to therefore always resolve
the same plan.
No. Keel identifies a company by hostname, and the table it reads has no path in it at all, so a path cannot say which company a request is about. Give Keel a hostname of its own.
Nothing. The address identifies your storefront, and it is the one identifier you cannot get wrong. The box is a compatibility route for an installation that does not yet know the address you entered. If you do fill it in with a name belonging to a different company from the address, Keel refuses the request and the settings screen explains it, rather than showing one brand's prices and sending the buyer to another brand's order form.
Your Keel is asking for a solved challenge. That challenge is on for domain searches whatever the per-form switch says, because the search is the one thing on a storefront that can cost you money at a registrar. This plugin draws the box for reCAPTCHA v2, hCaptcha and Turnstile. It cannot draw invisible reCAPTCHA v3, which has no box. Settings → Keel says which one you are on. Either pick one of the three on Keel's captcha screen, or clear the captcha keys there and let Keel rely on its own cache and daily lookup ceiling.
Prices are cached for five minutes so a busy pricing page does not ask Keel on every hit. It will catch up on its own, or press Clear the cache on the settings screen.
The last prices this site managed to read, for up to a week, rather than a blank space or an error. The settings screen and a notice in your admin say that is what is happening, for as long as it is happening. Domain availability is never served from an old copy. A week-old "available" would sell a name somebody else already registered, so a lookup that fails says it failed.
No, and that is deliberate. Payment, tax and terms belong in one place. Each plan links to your Keel order form.
Only the provider your Keel is set to, and only on a page with a domain
search. Google reCAPTCHA is https://www.google.com/recaptcha/api.js, terms
https://policies.google.com/terms, privacy https://policies.google.com/privacy.
hCaptcha is https://js.hcaptcha.com/1/api.js, terms
https://www.hcaptcha.com/terms, privacy https://www.hcaptcha.com/privacy.
Cloudflare Turnstile is
https://challenges.cloudflare.com/turnstile/v0/api.js, terms
https://www.cloudflare.com/website-terms/, privacy
https://www.cloudflare.com/privacypolicy/. With no challenge required by your
Keel, none of them is loaded at all.
[keel_pricing group="shared-hosting"] draws cards side by side.
[keel_pricing group="shared-hosting" layout="comparison"] puts the plans
across the top and what each includes down the side. Add
featured="advanced-hosting" to mark one. Both read the same plans, so two
pages cannot disagree.
Rows come from what each plan says it includes, entered in Keel as a label
and a value. Use the same label across a group and the rows line up. Only
"yes", "no", "true", "false", "included" and "none" become a tick or a cross;
anything else prints as you typed it.
Yes: [keel_compare plans="basic,advanced,business"] compares exactly those,
in the order you name them. [keel_compare groups="shared,reseller"] compares
the cheapest plan in each group.
One table shows one billing period, because a column priced in a different
period is a figure the eye compares and the small print does not correct. Name
it with cycle="1:year", or leave it out and the period your named plans
share is used. If they share none, the shortcode is left unexpanded on the
page so the problem is visible, and an administrator is told why.
[keel_currency_switcher] offers the currencies your installation really
prices in, and the order form opens in the one they chose.
[keel_enquiry] opens a real ticket in a real department, with no account
needed.
Yes. A visitor arriving with ?ref= or ?aftid= has it carried through to
your Keel order form, including on the landing page itself. It is done in the
browser rather than in PHP, so a cached page cannot credit one visitor's
affiliate for everybody else's sales.
[keel_enquiry] could be submitted from another site, so a cross-site
request was able to open a ticket in your support desk. A page carrying the
form is now kept out of the page cache, so the nonce on it is always one
this site will accept.$_SERVER values are sanitized where they are
read rather than where they are used.[keel_enquiry] opens a real ticket in a department you have marked as
public. Keel has had a public enquiry form since the website builder was
written and it addressed the message by SECTION - a row in Keel's own page
tree - which a WordPress site has none of and never will, so this was
unreachable from a marketing site. An internal queue is never offered and
is refused even when named directly, and the ticket is attached to no
customer account however the address matches.[keel_currency_switcher] offers the currencies your installation
really prices in, and carries the choice into the order form. No rate is
applied to anything: each figure is the one Keel holds for that currency, so
a switched price is the price the invoice will carry.[keel_compare] draws a comparison table from the catalogue. The
comparison page is the one page on a hosting site that is always out of date,
because it is the one kept by hand.[keel_tld_pricing] and [keel_domain_search] by name. Both
have worked since 1.0.0 and the description talked about what they do
without ever telling anybody what to type.cycle= still pins a row to one term and now suppresses the toggle with
it, because the attribute is an instruction and a control that overrode it
would make the page disagree with its own heading.cycle= the
cheapest recurring price was shown, which on a group sold quarterly as well
as annually put a quarterly figure under a pressed "Annually" button.hidden and a theme's script removes the attribute, so a
reader with no JavaScript is shown one complete price and never a dead
control.changelog.txt, which ships with the plugin.