Pricing Manager
Introduction
Installation
Settings
Design
Support
FAQ – Frequently Asked Questions
Introduction
Your directory can use the Pricing Manager Addon to configure pricing packages for listings. With the addon you can set options for how free and paid listings behave in the “Packages” that control which GeoDirectory features are available to customers. Get the Pricing Manager add-on for GeoDirectory and get started.
In this document we cover the settings at
GeoDirectory – Settings – Pricing
We have another document where you can learn more about configuring listing Packages.
Installation
Preparation
Check to be sure you have the following plugins installed before you get started.
In order to sell listings, you will also need a cart.
- GeoDirectory V2
- WP Invoicing or WooCommerce – Read more about choosing a cart here
Installation
Settings
Core Pricing Manager settings are at
GeoDirectory – Settings – Pricing
Listing Expiration Settings
- Enable listing expiry?
Enable listing expiry? If disabled then no listings will expire in future.
- Expired Listing Status
- Paid Listing Status
- Renewal for free package?
Renewal for free package? Tick to allow renewal of listing with free package.
Cart Settings
You can find the setting to choose your cart at
GeoDirectory – Settings – Pricing – Show Advanced – Cart
- Cart
Choose your cart. You can use either WP Invoicing or WooCommerce. If you don’t have them installed, they will not be available as choices.
Choosing a Cart
GeoDirectory Pricing Manager is used to configure “Packages”. Packages contain the features available to listing owners when they edit their listing.
The second important function of the Pricing Manager addon is to share the Package information to your site’s ecommerce cart.
The cart serves several purposes. First and foremost it will collect billing and payment information from your customers. Next it will use the payment information to process the purchase with a gateway. The cart also manages subscriptions and recurring billing, creates invoices, and sends order confirmations.
Different carts have different features, and sometimes different names for the same thing. In WP Invoicing a listing Package is called an “Item”.In WooCommerce, listing packages are called “Products”. In either case, when you make changes to a listing Package in the GeoDirectory settings, Pricing Manager pushes the changes into the cart plugin database, updating the information about the packages in the cart.
You have a choice of two carts.
We recommend WP Invoicing. We built WP Invoicing with advanced integration with both GeoDirectory and UsersWP. The integration provides you with some peace of mind because we stand behind our products and provide support. Specific advantages of using WP Invoicing and UsersWP include:
WP Invoicing
- Orders for listing packages are marked “Complete” as soon as payment is received, so your site can be “automated” if your package post status is set to “Published”.
- Invoices for published listings will contain a link to the listing, making it easy for your customers to return to their listing later.
- My Invoices is available as a menu item to help users keep track of their orders.
- Read more about the integration
UsersWP
- Beautiful user profiles
- Profile tab for “My Listings” makes it easy for listing owners to find and edit their listings.
- Profile tab for “My Orders” makes it easy for listing owners to find a record of their invoices.
- Smart login/logout/register links that show/hide to logged in or logged out users automatically.
- An easy-to-configure menu link to “/profile/? helps users find everything they need in one place.
- Read more about the integration
WooCommerce can process orders for listing packages, but lacks the advanced integration of WP Invoicing. Additional plugins or custom development may be needed in order to accomplish similar functionality.
Pricing Manager and Custom Fields
Custom Fields management is covered in detail in the Places Settings Custom Fields doc.
What follows is a brief overview of the fields that are added with Pricing Manager.
Price Package Custom Field
Add the Price Package field to each CPT. Make sure it is set to Active. If you do not add this field, you will receive an error when trying to submit the listing.
Expire Date
Expire date will be automatically added to all listings.
You can show the expire date on the frontend using Custom Fields options for “Show in extra output locations” or through the use of GD Post Meta as a widget or shortcode.
Featured and Price Packages
The pre-defined “Featured” field has a special integration with Pricing Manager. Read more about the Featured field.
Package Setting
Each CPT will have a tab where listing packages can be configured. These settings are covered in the Places – Packages documentation.
Design
Widgets
GD > Author Actions
GD > Author Actions (shortcode
gd_auhor_actions
display links for “Edit”, “Upgrade”, and “Delete”.
GD Author Actions has an option to hide the “Delete” link so that users can be prevented from deleting a listing.
Archive Item template
Use GD Author Actions in the Archive Item template so that your listing owners can easily edit their listings from the GD Dashboard.
GD Author Actions is included in the content for the Archive Item template. If it is missing, edit the Archive Item template to add GD Author Actions back into the template contents.
Detail template
Use GD Author Actions on the Details template. This is most commonly done by adding the GD Author Actions widget to the sidebar that displays on the Detail page.
GD Post Meta
Display the Package ID
[gd_post_meta key="package_id" show="value"]
GD Author Actions
[gd_author_actions]
[gd_author_actions]
Author Actions shortcode can be used to display “Upgrade” and “Downgrade” links.
Customizing
GeoDirectory gives you a strong foundation for your directory app, and you may find you want to change the way your directory works in ways that aren’t built in. If you are adding code then it is customization. Here in this section are where we keep examples that you can use to build your own customization.
Snippet – Different Archive Item for each price package
See this forum topic.
Snippet – Skip invoices for free packages
See this forum topic.
Hide a tab based on a price package
Want to show “Related Ads/Listings” in a tab on free packages but hide them on paid packages? This will hide the tab in desktop view:
/*Hide tab for package ID 23*/
.gd-post-pkg-23 [data-tab="#related-listings"] {
display:none!important;
}
To adjust this to your site you will need two pieces of information:
1. The numberic ID of the package where you want to hide the tab – Find this on the packages page.
2. The name of the tab – you will need to use the chrome inspector to find this – more info here.
Pricing Tables
You can use a pricing table plugin, and then link to your different packages.
Search for Pricing Tables plugins – https://wordpress.org/plugins/search/pricing+table/
The “Signup” (Buy, Subscribe etc) button in your pricing table can link directly to a package with a link like this::
https://mysite.com/add-listing/?listing_type=gd_place&package_id=4
Adjust the link based on your CPT and Package ID.
Also see our blog article about fast pricing tables here: https://wpgeodirectory.com/are-pricing-tables-slowing-down-your-site/
Get Support
Get support on our forum, fnd out more here: https://wpgeodirectory.com/docs-v2/v2/support/
FAQ – Frequently Asked Questions
Can I use WooCommerce for my cart?
Yes. For more about WooCommerce integration with Pricing Manager see: https://wpgeodirectory.com/docs-v2/integrations/woocommerce/
We do not provide support for WooCommerce, only Pricing Manager. If you need help with Woo, you can contact a GD Expert here: http://geodirectoryexperts.com
Use the “Sync” option as shown below to ‘push’ package settings into the cart.
I see an error when I try to submit a listing “Save failed due to invalid package! Cheating huh?”
Make sure that the Pricing Package field is set to active. This error indicates that the field is not active.
In GeoDirectory v2, the add/edit/renew/upgrade process is almost exactly the same. The actions available to the listing owner are decided by the package selection, listing status and whether the listing is edited during the renewal period.
If a listing is published and the user chooses the same package, then the listing will update/renew based on the current listing status and expire date.
If listing is not published or is edited during the renewal period then the user will see the renewal options. If the listing is published and does not falls in renew period then the owner will presented with only the options to edit/update the listing.
– If uses goes with different package then they will see the upgrade options.
Appropriate price packages remain visible on the edit listing page.
Sorting by price in GDV2 is easier because the $ Package field is now a pre-defined custom field that is automatically populated with the package.
Package is automatically added to all your CPTs when Pricing Manager is enabled.
You can adjust the field settings in CPT -> Custom Fields -> $ Package
Inside the field settings you can se the field to be included in the Sorting options.
Using the GD Expire Check Tool
You can find the GD Expire Check tool at : GD – Status – Tools (tab) – Listing Expire Check – Run
Read about the GD Tools here: https://wpgeodirectory.com/docs-v2/geodirectory/status/#toolsThe Listing Expire Check tool forces listing to expire where:
- Expiry date is in the past.
- The listing is assigned a non-recurring package.
Listings assigned recurring packages will only expire if a notification is received from the Payment gateway.
For recurring/subscription packages, the listing will expire if:
- Payer cancels(stops) the subscription (ex. listing owner cancels recurring payments at PayPal)
- Payee cancels(stops) the subscription (ex. site owner cancels recurring payments at PayPal)
- Payment cycle is completed (i.e. package has selected options like recurring every “1 month” for “6 times”, then subscription is automatically cancelled after 6 recurring payments.)
Get support on our forum, find out more here: https://wpgeodirectory.com/docs-v2/geodirectory/support/
Body Class
You can style listings based on the package because the package ID is used as a class on both the archive and detail page displays.
Hide an element for package 1
For example, if my item is a shortcode I could wrap it in class=”hide-me-for-paid-listings” then use css
.gd-post-pkg-1 .hide-me-for-paid-listings {
display: none;
}
Post Save Events
When a user submits a listing (post) an AJAX message displayed on the same page.
You can use the below code snippet to customize the results there.
add_filter('geodir_ajax_save_post_message','_my_post_save_message',10,2); function _my_post_save_message($message, $post_data){ if ( isset( $post_data['post_parent'] ) && $post_data['post_parent'] ) { // update post }else{ // new post $package_id = isset($post_data['package_id']) ? absint($post_data['package_id']) : "; if($package_id){ $message = sprintf( __('Post received for package %s, your listing may need to be reviewed before going live, you can preview it %shere%s.', 'geodirectory'),$package_id, "<a href='$preview_link' >", "</a>" ); $message .= "<script>alert($package_id)</script>"; } } return $message; }
Skip Sending Invoice Notifications for Listing Package “Purchases” that are 0.00 (free)
Your directory may have lots of users who take advantage of Free packages, and you might want to skip sending an email notification for the invoice generated for those free listings.
Requirements:
– GeoDirectory V2
– Pricing Manager V2
– WP Invoicing
/**
* Prevent sending invoice email notifications to user for free invoices.
*/
function gd_snippet_prevent_invoice_email_for_free_listing( $recipient, $email_type, $invoice_id, $invoice ) {
if ( class_exists( 'GeoDir_Pricing_Post_Package' ) && ! empty( $invoice ) && $invoice->is_free() ) {
$post_packages = GeoDir_Pricing_Post_Package::get_items( array( 'invoice_id' => $invoice_id ) );
if ( ! empty( $post_packages ) ) {
$recipient = NULL; // No recipient.
}
}
return $recipient;
}
add_filter( 'wpinv_email_recipient', 'gd_snippet_prevent_invoice_email_for_free_listing', 100, 4 );
How can I setup a downgrade to the same package for non-recurring free packages? I want to make sure I am sending expiry emails with CTAs to signup.
You can create a second free package and set that for downgrade. So, the packages would downgrade back and forth.