Shatner – Name your Own Price Integration for WooCommerce
by Sean Voss · eCommerce
Also makes 2 other plugins · 5.1K+ installs across the portfolio →
Shatner lets users name their own price
Try it live opens a temporary test site in your browser, which can take about 20 seconds to load. Plugins that rely on outside services or a full server may not work completely there.
Health
D 43/100
Stale · Likely abandoned
Active installs
80+
≈80 estimated
Momentum
-6%
downloads vs prior 30d
Biggest opportunity: “donation”, “fee donation woocommerce” and “free name your own price” aren't earning a slot. You list them, but you're not in the first 24 results for those searches. WordPress.org counts only your first five tags, so free the slot for a search you can win.
43 health vs 71 average across 9,743 eCommerce plugins
Install conversion
How it's measured →0.8%
of downloads still active
At least 80 of 10K lifetime downloads are still running, below its category: the median eCommerce plugin keeps 1.4%, across 5,140 plugins.
Downloads count every update, not just first installs, so older and more frequently released plugins read lower. Compare against other eCommerce plugins, not across the directory. wp.org reports active installs as the bottom of a band, so the real rate is this or higher.
High removal-risk signals
63/100Maintenance and integrity signals that tend to precede a WordPress.org removal. Not an official status, a heads-up to act.
- Long abandoned. No update in 12+ years — the top precursor to removal once a vulnerability is found.
- Compatibility drift. Tested only up to WordPress 3.6.1, well behind 6.8.
Details
Directory ranking optimization
How it's scored →How well this listing is tuned to rank in WordPress.org search, on the factors an owner controls. Not popularity, optimization.
Under-optimized
Most to gain: Update recency
Updated 4484 days ago, past the ~180 days where wp.org starts discounting
Tested up to WordPress 3.6.1; the current branch is 6.8
3.8★ over 19 reviews, smoothed to 4.02★ and held back under 25 reviews
5 of 5 tags set · short description in place
To rank higher: Last updated 4484 days ago — ship an update; wp.org decays a listing's search weight after ~180 days.
Get the full rank-higher report →Search visibility
How it's tracked →Directory searches this plugin turns up in, and which way each one is moving. WordPress.org publishes no history of search positions, so this starts the day we first tracked a keyword and never backfills.
Not enough tracked days yet to call a direction. Momentum needs at least three keywords measured a week or more apart.
wp.org is where the directory puts the plugin for that search. On merit is where it would sit if results were ranked on rating, support and updates, without the install boost. The last column is how far the wp.org position moved, from our first reading in the last 90 days to the latest.
| Keyword | wp.org | On merit | wp.org move, 90 days |
|---|---|---|---|
| donation your tag | Not in the top 24 | ||
| fee donation woocommerce your tag | Not in the top 24 | ||
| free name your own price your tag | Not in the top 24 | ||
| name your own price your tag | Not in the top 24 | ||
| woocommerce your tag | Not in the top 24 | ||
0 searches this plugin appeared in over the last 90 days. 5 of its tags aren't in the top 24 for their own search.
What to do about it
- “donation”, “fee donation woocommerce” and “free name your own price” aren't earning a slot. You list them, but you're not in the first 24 results for those searches. WordPress.org counts only your first five tags, so free the slot for a search you can win.
Daily downloads
Since 5 Oct 2022 · 1,487 days · wp.org + Plugin Pulse archive
30-day downloads
Rolling 30-day volume · peak 76 · peaks are release surges
Directory rank
Ranked about #17,400 to #18,100, alongside the other plugins at 80+ installs. Plugins with the same install count swap places between wp.org requests, so this is where most of them sit. Checked monthly, last on 21 Oct 2026.
Rating trend
Star average over time · dips mark rough releases
Update activity
Downloads in the last 30 days for every 1,000 active sites.
Not enough installs to measure. This needs at least 100 active sites; below that, a handful of downloads reads as tens of thousands.
Release cadence
No release in a yearHow often this plugin actually ships. A steady rhythm is the maintenance signal a single "last updated" date can't show.
0
releases in the last 12 months
12.3y ago
latest release · v1.7 · 22 Jul 2014
15
tagged releases on record
Recent releases
What its installed base runs
via wordpress.orgShare of active installs on each version of this plugin · 100% run the current release. Green is the current release; a big slice on older versions is a user base that has stopped updating.
Estimated active installs
The public count shows “80+”. Our estimate pins where the real number sits.
Crossed into this band today and a band this size takes about a year or more to cross, so the real count is still just over 80.
At the current install trend, crossing 90+ in roughly 309 days.
Install history since 27 Sep 2015
Recent reviews
All reviews on wp.org ↗- ★★★★★ velmareth10.5y ago
When this plugin is enabled, Woocommerce prevents the shopfront from linking to any product you set up as name your own price
Read on wp.org ↗ - ★★★★★ ashtonh10.9y ago
This is a simple but effective plugin. Functionally it does exactly what i need. One strange User Experience concern that is a big one as it will lead to a decrease in sales: It allows you to set a minimum amount that you are willing to accept but on the product page it displays that amount as the ‘suggested price’ instead of the ‘minimum price’ I don’t want to suggest to my customers to pay the minimum amount. I want them to pay what they want. It would be great if this could be changed or better yet if we had the options to change that text ourselves. I know its prob an easy fix via CSS but I wouldn’t know how to do that. Thanks,
Read on wp.org ↗ - ★★★★★ Gonzalo11.1y ago
Part of the plugin is printed to the html output!, both front end and control panel. Uninstalled and deleted. It’s a shame Update: ok, dsthedev is right, the problem are the PHP short tags. On my server I have disabled it, so obviously, the plugin is not working. I followed the recommendation of dsthedev and I edited the files that cause the problem. They are, as he says, the files: – name_price_wc_plugin.php (line 1) – \templates\single-product\price.php (lines 41 and 52) you have to change this: <? to this: <?php The plugin version of which I speak is the 1.7 And it solved. The plugin works well and does the job perfectly. It’s a shame to have this foolish error. I hope that in the next update the author corrected.
Read on wp.org ↗ - ★★★★★ dsthedev11.3y ago
Works as advertised. Only issue I had was that the plugin is using a few shorthand php opening tags <? when it should be using <?php. To users who see a wall of errors at the top of the page, try this: Open name_price_wc_plugin.php and change line 1 from <? to <?php Also open templates/single-product/price.php and change line 52 from <? } ?> to <?php } ?>. If this doesn’t help simply change the version to something old (1.0) and update the plugin, it will revert it back to normal. To the developer: please use full tags, always. Other than that, this plugin is great.
Read on wp.org ↗ - ★★★★★ gep751611.4y ago
When installed got the same mess as espiacongreso. Found the developer had used the php short open tags in a few places. After checking all of the php files and replacing the plugin works. Though having some difficulty with the plugin settings for the label. However a user is able to set their own price.
Read on wp.org ↗ - ★★★★★ espiacongreso11.4y ago
That was what I got from installing (‘shatner_label’, “Name your own price”); wp_enqueue_script(‘shatner’, plugins_url(‘/shatner.js’,__FILE__), array(‘jquery’) ); if ( is_admin() ){ // admin actions $this->init_form_fields(); add_action( ‘admin_menu’, array($this, ‘add_shatner_menu’ )); add_action( ‘admin_init’, array($this, ‘admin_init’ )); add_action(‘woocommerce_before_calculate_totals’, array($this, ‘add_custom_price’ )); add_action(‘woocommerce_product_options_pricing’, array($this, ‘add_donation_radio’)); add_action(‘save_post’, array($this, ‘set_named_price’)); } else { if(get_option(‘use_shatner_templates’, 1 ) == 1) { add_filter(‘woocommerce_locate_template’, array($this, ‘template_override’),10,3); add_filter(‘woocommerce_loop_add_to_cart_link’, array($this, ‘remove_link’),10); } add_action(‘woocommerce_product_options_pricing’, array($this, ‘add_donation_radio’)); add_action(‘save_post’, array($this, ‘set_named_price’)); add_action(‘woocommerce_add_to_cart’, array($this, ‘add_to_cart_hook’)); add_action(‘woocommerce_before_calculate_totals’, array($this, ‘add_custom_price’ )); add_action(‘init’, array($this, ‘init_css’)); } } public function remove_link($link) { global $post; $post = get_post_meta($post->ID, ‘_own_price’, true); if ($post === ‘yes’) return ”; return $link; } public function add_shatner_menu() { add_options_page( ‘Shatner Plugin Settings’, ‘Shatner Settings’, ‘manage_options’, ‘shatner_plugin’, array($this, ‘shatner_plugin_settings_page’) ); } public function shatner_plugin_settings_page() { include(sprintf(“%s/templates/settings.php”, dirname(__FILE__))); } /** * hook into WP’s admin_init action hook */ public function admin_init() { // add your settings section add_settings_section( ‘wp_plugin_template-section_shatner’, ‘Shatner Plugin Template Settings’, array($this, ‘settings_section_shatner_plugin_template’), ‘wp_plugin_template_shatner’ ); foreach($this->form_fields as $setting) { // register your plugin’s settings register_setting(‘wp_plugin_template-group-shatner’, $setting[‘title’]); // add your setting’s fields add_settings_field( $setting[‘title’], $setting[‘description’], array(&$this, ‘settings_field_input_’. $setting[‘type’]), ‘wp_plugin_template_shatner’, ‘wp_plugin_template-section_shatner’, array( ‘field’ => $setting[‘title’] ) ); } } // END public static function activate public function init_form_fields() { $this->form_fields = array( array( ‘type’ => ‘text’, ‘title’ => __(‘shatner_label’, ‘woothemes’), ‘description’ => __(‘Shatner Label’, ‘woothemes’), ‘default’ => __(‘Name your own price’, ‘woothemes’) ), array( ‘type’ => ‘radio_button’, ‘title’ => __(‘use_shatner_templates’, ‘woothemes’), ‘description’ => __(‘Shatner Templates override pricing, disable if you want to customize using your theme’, ‘woothemes’), ‘default’ => __(‘1’, ‘woothemes’) ) ); } public function settings_section_shatner_plugin_template() { // Think of this as help text for the section. echo ‘These settings set values for Shatner’; } /** * This function provides text inputs for settings fields */ public function settings_field_input_text($args) { // Get the field name from the $args array $field = $args[‘field’]; // Get the value of this setting $value = get_option($field); // echo a proper input type=”text” echo sprintf(”, $field, $field, $value); } // END public function settings_field_input_text($args) /** * This function provides text inputs for settings fields */ public function settings_field_input_radio_button($args) { // Get the field name from the $args array $field = $args[‘field’]; // Get the value of this setting $value = get_option($field); $html = ‘ ‘; $html .= ‘ Enable ‘; $html .= ‘ ‘; $html .= ‘ Disable’; echo $html; } // END public function settings_field_input_radio($args) public function template_override($template, $template_name, $template_path ) { // Modification: Get the template from this plugin, if it exists $plugin_path = untrailingslashit( plugin_dir_path( __FILE__ ) ). ‘/templates/’; if ( file_exists( $plugin_path . $template_name ) ) { $template = $plugin_path . $template_name; return $template; } return $template; } public function init_css() { wp_register_style(‘donation_css’, plugins_url(‘custom_styles.css’,__FILE__ ), false, ‘1.0.1’, ‘all’); wp_enqueue_style( ‘donation_css’ ); } public function add_to_cart_hook($key) { global $woocommerce; foreach ($woocommerce->cart->get_cart() as $cart_item_key => $values) { if(!get_post_meta($values[‘product_id’], ‘_own_price’, true ) || get_post_meta($values[‘product_id’], ‘_own_price’, true ) === ‘no’) { $values[‘data’]->set_price($_POST[‘price’]); continue; } $thousands_sep = wp_specialchars_decode( stripslashes( get_option( ‘woocommerce_price_thousand_sep’ ) ), ENT_QUOTES ); $decimal_sep = stripslashes( get_option( ‘woocommerce_price_decimal_sep’ ) ); $_POST[‘price’] = str_replace($thousands_sep, ”, $_POST[‘price’]); $_POST[‘price’] = str_replace($decimal_sep, ‘.’, $_POST[‘price’]); $_POST[‘price’] = woocommerce_format_total($_POST[‘price’]); error_log(var_export($_POST,1)); if($cart_item_key == $key) { $values[‘data’]->set_price($_POST[‘price’]); $woocommerce->session->__set($key .’_named_price’, $_POST[‘price’]); } } return $key; } public function set_named_price($post) { if($_POST[‘_own_price’]){ if(!get_post_meta($_POST[‘post_ID’], ‘_own_price’, true )){ add_post_meta($_POST[‘post_ID’], ‘_own_price’, $_POST[‘_own_price’]); } else { update_post_meta($_POST[‘post_ID’], ‘_own_price’, $_POST[‘_own_price’]); } } if($_POST[‘_own_price_enforce_minimum’]){ if(!get_post_meta($_POST[‘post_ID’], ‘_own_price_enforce_minimum’, true )){ add_post_meta($_POST[‘post_ID’], ‘_own_price_enforce_minimum’, $_POST[‘_own_price_enforce_minimum’]); } else { update_post_meta($_POST[‘post_ID’], ‘_own_price_enforce_minimum’, $_POST[‘_own_price_enforce_minimum’]); } } } public function add_donation_radio($content) { global $post; woocommerce_wp_radio(array( ‘id’ => ‘_own_price’, ‘class’ => ‘wc_own_price short’, ‘label’ => __( ‘Name your own price’, ‘woocommerce’ ), ‘options’ => array( ‘yes’ => ‘yes’, ‘no’ => ‘no’, ) ) ); woocommerce_wp_radio(array( ‘id’ => ‘_own_price_enforce_minimum’, ‘class’ => ‘wc_own_price_e short’, ‘label’ => __( ‘Enforce minimum price (Regular Price)’, ‘woocommerce’ ), ‘options’ => array( ‘yes’ => ‘yes’, ‘no’ => ‘no’, ) ) ); } public function add_custom_price( $cart_object ) { global $woocommerce; foreach ( $cart_object->cart_contents as $key => $value ) { if(!get_post_meta($value[‘product_id’], ‘_own_price’, true ) || get_post_meta($value[‘product_id’], ‘_own_price’, true ) === ‘no’) { continue; } $named_price = $woocommerce->session->__get($key .’_named_price’); if($named_price) { $value[‘data’]->price = $named_price; } } } } new SV_WC_Donation();
Read on wp.org ↗ - ★★★★★ dschmidt2011.4y ago
I was excited to check out this plugin, but nothing appears on Front-end when activated and options chosen on product page. Will this plugin be upgraded to support latest Woocommerce release?
Read on wp.org ↗ - ★★★★★ rajbizz11.4y ago
Please add features to set maximum price.
Read on wp.org ↗
Behavioral tests
via WP HiveAutomated install-time checks, tested on PHP 7.2.16 · WP 5.3
AI assistants
How it's measured →Whether ChatGPT and Claude name this plugin when asked the category question, and whether the readme gives them something to quote.
Not measured yet for this plugin’s topics. Its tracked searches are not among the measured topics. See the topics measured so far.
Readme readiness
1 of 8 pass · checked 24 Oct 2026Can an assistant quote this readme? Eight deterministic checks over the wp.org listing, no model involved.
- ! Says what it does Short description is 39 characters, too short to say what the plugin does.
- ! Has a FAQ No FAQ section.
- ! FAQ asks real questions No FAQ to judge.
- ! Names who it is for One audience phrase ("use this"); say who the plugin is for and what they use it for.
- ✓ Names what it works with Mentions WooCommerce.
- ! Headings and lists 1 heading and 0 lists; assistants quote headed sections and bullet lists, not paragraphs.
- ! Enough to quote 287 characters of description; under 1,000 there is little to quote.
- ! Tags match the text Only 2 of 5 tags appear in the text ("fee donation woocommerce", "free name your own price", "name your own price" missing).
Growth timeline
Install-tier crossings we have observed, and how long each tier took to outgrow
- 2026-10-31 70+ → 80+ up after 3 days in tier
- 2026-10-28 80+ → 70+ down after 6 days in tier
- 2026-10-22 70+ → 80+ up after 1 days in tier
- 2026-10-21 80+ → 70+ down after 8 days in tier
- 2026-10-13 70+ → 80+ up after 134 days in tier
- 2026-06-01 80+ → 70+ down after 1 days in tier
- 2026-05-31 70+ → 80+ up after 117 days in tier
- 2026-02-03 80+ → 70+ down after 63 days in tier
Competes with
The plugins that solve the same job, ranked by shared tags then reach, closest match first. The letter on the right is each plugin's health grade (A best, F worst).
-
Google for WooCommerce 800K+ installs · 2.8★ · 1 shared tag C -
WooCommerce PayPal Payments 800K+ installs · 2.9★ · 1 shared tag B -
WooCommerce Stripe Payment Gateway 700K+ installs · 3.1★ · 1 shared tag B -
WooCommerce Tax (formerly WooCommerce Shipping & Tax) 500K+ installs · 2.2★ · 1 shared tag B -
WooCommerce Legacy REST API 400K+ installs · 2.2★ · 1 shared tag C -
PDF Invoices & Packing Slips for WooCommerce 300K+ installs · 4.9★ · 1 shared tag A
Embed this report card
Drop a live Pulse card for Shatner – Name your Own Price Integration for WooCommerce into a readme, a review or a deck. It updates itself.
<iframe src="https://plugins.wpmayor.com/embed/shatner-name-your-own-price-for-woocommerce" width="480" height="300" style="border:0" loading="lazy" title="Shatner – Name your Own Price Integration for WooCommerce — Plugin Pulse"></iframe> Shatner – Name your Own Price Integration for WooCommerce: 80+ active installs, 3.8★ (19 reviews). Plugin Pulse (WP Mayor), as of 2026-10-31. https://plugins.wpmayor.com/plugin/shatner-name-your-own-price-for-woocommerce
Spotted a number that looks wrong? Report a data issue and we'll check it against the source.