| 开发者 |
lynn999
ethereumicoio freemius |
|---|---|
| 更新时间 | 2026年10月21日 14:36 |
| 捐献地址: | 去捐款 |
| PHP版本: | 8.1 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
The EthPress NFT Access Add-On can be used to control access for WooCommerce products, simple pages and posts.
/wp-content/plugins/ directoryThe NFT Token based access control for the WooCommerce products, simple pages and posts can be done with the EthPress NFT Access Add-On. Free 7 days Trial is available!
The wallet modal is drawn by Reown AppKit inside a shadow root, so page CSS and class selectors cannot reach it at all (the old #web3-login-root element and its per-build svelte-* classes are gone). Style it with the Custom CSS setting (PRO, in Reown Settings) and the AppKit CSS variables such as --w3m-accent.
The outline is described in this TopTal post by Amaury Martiny.
A one-time nonce is stored for the wallet address and consumed when the signature is verified, so a signed message cannot be replayed. Its lifetime is 15 minutes by default and can be changed with the ethpress_nonce_lifetime filter. The IP the message was requested from is stored with it for troubleshooting, but it is not part of the check, because a mobile wallet can switch networks between requesting the message and signing it.
For more details, check out the extra readme.
When user submits a signature, it needs to be verified on server-side.
Read the "How does it work?" question.
Firstly, if you have the php-gmp or php-bcmath extension installed, we do it with PHP, and you can ignore the rest of this. The Diagnostics section of the EthPress settings page proves it with a known message and signature.
Otherwise the verification is done by a verification service. EthPress PRO comes configured with a Managed Verification Service. You can also host that service yourself and set its URL in the Verification Service API URL setting; its source code is here: https://gitlab.com/losnappas/verify-eth-signature.
Yes. A wallet (e.g. MetaMask) does/should not leak your private keys out into the wild, that would be madness.
Mobile integration is in good condition, with Reown QR code reading from wallets such as MetaMask Mobile, there is very little friction!
Unlinking is a soft detach: only the association is removed, the WordPress account stays.
ethpress user meta of the account is deleted, so the wallet no longer resolves to it: [ethpress_account], the eth-address-field elements and the unlink button show nothing until a wallet is linked again.This is everything EthPress keeps on your server for a wallet:
ethpress user meta of the WordPress user the wallet is linked to. Unlinking the wallet deletes that meta; the user account itself and its login name (the address) stay until the account is deleted;Inline form next to the login button mode collect;ethpress_generated_email and ethpress_profile_incomplete, which let the plugin replace the placeholder email with a real one;wp-content/uploads/wc-logs/ethpress-*.log, or to the PHP error log when WooCommerce is not installed, and they contain the wallet address, the message that was signed and its signature. Clear those files when the addresses have to be gone.wp_usermeta until those users are deleted themselves - search for the ethpress meta key if you need to remove them by hand.
Check the Diagnostics section of the EthPress settings page to see which verification path your site uses.
Contributions on GitLab only, thank you.
Plugin's source code: https://gitlab.com/losnappas/ethpress.
Signature verifier's, which is used if no php-gmp or php-bcmath, source code: https://gitlab.com/losnappas/verify-eth-signature.
The wallet modal is a React component built on the Reown AppKit library. Its source code is part of the plugin repository, in the reown/ directory: https://gitlab.com/losnappas/ethpress.
On the wordpress.org support page, or on the ethereumico.io support forum.
Reown settings section is added: Reown Project ID, Theme mode and Supported networksSupported networks setting lets you choose which networks are offered to users - the EVM chains (Ethereum, Polygon, Arbitrum, Optimism, Base, BNB Smart Chain, Avalanche, Fantom, Gnosis, zkSync, Linea, Scroll, Celo, Polygon zkEVM, Mantle, Blast, Cronos, Moonbeam) and testnets[ethpress_unlink_button] shortcode is added to display the Unlink wallet button anywhere. Unlinking removes the wallet association and keeps the account: signing in again with the same wallet links it back to that account, and the wallet cannot be used to register a second oneolegabr/keccak is replaced with kornrunner/keccakDisable standard redirect login setting is added. When enabled, a successful login no longer redirects to the WordPress dashboard or the Redirect URL, but returns the user to the page where the login startednoredirect and redirect_to attributes are added to the [ethpress_login_button] shortcode, so the redirect can be controlled per buttonlabel attribute is added to the [ethpress_login_button], [ethpress_link_button] and [ethpress_unlink_button] shortcodes, so the button text can be changed per button (PRO)Remember me login setting is added. Wallet users now stay logged in across browser restarts instead of having to connect their wallet on every visit. The Free version always keeps it enabledProfile completion login setting is added. When enabled (PRO), new wallet users who registered without an email address are sent to their profile after the first login to add an email and a name. It also has an Inline form next to the login button mode, which collects the email and name before the account is created. The values are remembered for the current browser tab, so a reload does not lose themHide on the WordPress login page setting is added. When enabled, the wallet login and register buttons are not displayed on wp-login.php. Buttons added with the shortcodes or the widget are not affectedCustom CSS setting is added (PRO). It styles the login buttons and the wallet modalTerms & Conditions text and Terms & Conditions URL login settings are added. They show a required "I agree to the Terms & Conditions" checkbox next to the wallet login button; the text links to the given URL when set. The login is blocked until the box is ticked, and the acceptance is checked on the server as wellDiagnostics section is added to the plugin settings. It answers the "why does nothing work here" questions without support: whether php-gmp/php-bcmath verify signatures on this server, whether a known message and signature really recover the expected address (checked with this server, or with the verification service when that is the path the logins take), which verification service is used instead, whether your own Reown Project ID is set, and whether new wallets can create an accountDiagnostics section reports exactly that: it probes the service when the service is the path the logins take, and it waits at most 5 seconds[ethpress_login_button] shortcode no longer prints nothing for a logged-in visitor. It prints a hint explaining that the button is hidden because the user is already logged in (notice="1" forces it for every visitor, notice="0" switches it off); site owners see the hint by defaultAnyone can register setting and tells the visitor to contact the site administrator - something they can forward as is. Both messages are filterable with ethpress_registration_closed_message and ethpress_unregistered_messageUnexpected token < in JSON at position 0 error and left the user logged in on the server but not in the browserBad nonce, please refresh. The renewed nonces are now valid on the session the login just createdethpress_nonce_lifetime filter (15 minutes by default) instead of the fixed five minutes, and it no longer depends on the session token, which fixes Bad nonce, please refresh on slow mobile wallet flows