Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions README.TXT
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Tags: business directory, directory plugin, member directory, listing manager, c
Requires at least: 5.9
Requires PHP: 7.4
Tested up to: 7.1
Stable tag: 6.4.27
Stable tag: 6.4.28
License: GPLv2 or later

Build a business directory or member directory on WordPress, complete with a listing manager and directory website builder. No developer needed.
Expand Down Expand Up @@ -221,6 +221,14 @@ See the guide on [translating the Business Directory Plugin into another languag
Yes, with one restriction: do not "network activate" the plugin, since that would share the database across every site. Activate it only on the sub-sites that need it, under Plugins -> Add New as the Administrator user. Don't activate it as the "super admin."

== Changelog ==
= 6.4.28 =
* Fix: Held listings can now manage subscriptions
* Fix: Use the first populated email field for listing contact email
* Fix: Rejected payment renewals no longer complete listings or update subscription plans
* Fix: Listing renewal now preserves publication holds on pending, draft, or trashed listings
* Fix: Directory child page pagination links now work correctly in shortcode displays
* Fix: Directory view displays on empty category pages

= 6.4.27 =
* Enhancement: Updated plugin banner and screenshots for WordPress.org listing
* Enhancement: Improved documentation and FAQ clarity
Expand Down Expand Up @@ -299,6 +307,3 @@ Yes, with one restriction: do not "network activate" the plugin, since that woul
* Fix: Bug with the non-meta multiselect and radio buttons listing fields
* Fix: Bug with the "Start Import" button

= 6.4.11 =
* A bug with the front end listing submission form

2 changes: 1 addition & 1 deletion business-directory-plugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Plugin Name: Business Directory Plugin
* Plugin URI: https://businessdirectoryplugin.com
* Description: Provides the ability to maintain a free or paid business directory on your WordPress powered site.
* Version: 6.4.27
* Version: 6.4.28
* Author: Business Directory Team
* Author URI: https://businessdirectoryplugin.com
* Text Domain: business-directory-plugin
Expand Down
2 changes: 1 addition & 1 deletion includes/admin/class-admin.php
Original file line number Diff line number Diff line change
Expand Up @@ -1257,7 +1257,7 @@ public function handle_actions() {
/**
* Renew selected listings from the admin list table.
*
* @since x.x
* @since 6.4.28
*
* @param array $posts Listing post IDs.
*/
Expand Down
2 changes: 1 addition & 1 deletion includes/admin/upgrades/migrations/migration-18_8.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class WPBDP__Migrations__18_8 extends WPBDP__Migration {
/**
* Stop leftover weekly tracking cron events and hide the unused tracking pointer.
*
* @since x.x
* @since 6.4.28
*/
public function migrate() {
wp_clear_scheduled_hook( 'wpbdp_site_tracking' );
Expand Down
6 changes: 3 additions & 3 deletions includes/class-query-integration.php
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@ public function check_child_page( $posts, $query ) {
/**
* Parse the requested child page slug and page number from the main query.
*
* @since x.x
* @since 6.4.28
*
* @param WP_Query $query Main query.
*
Expand Down Expand Up @@ -303,7 +303,7 @@ private function get_child_page_request( $query ) {
/**
* Prefer the raw rewrite slug before WordPress sanitizes `name`.
*
* @since x.x
* @since 6.4.28
*
* @param WP_Query $query Main query.
*
Expand Down Expand Up @@ -339,7 +339,7 @@ private function get_requested_listing_slug( $query ) {
/**
* Treat a directory child fallback as a normal WordPress page query.
*
* @since x.x
* @since 6.4.28
*
* @param WP_Query $query Main query.
* @param WP_Post $page Child page.
Expand Down
2 changes: 1 addition & 1 deletion includes/class-wordpress-template-integration.php
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ private function get_template_alternatives() {
/**
* Seed empty category and tag queries with the directory page so the theme loop can render the view.
*
* @since x.x
* @since 6.4.28
*
* @param WP_Query $query The main query.
*
Expand Down
10 changes: 5 additions & 5 deletions includes/class-wpbdp.php
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public function __construct() {
}

private function setup_constants() {
define( 'WPBDP_VERSION', '6.4.27' );
define( 'WPBDP_VERSION', '6.4.28' );

define( 'WPBDP_PATH', wp_normalize_path( plugin_dir_path( WPBDP_PLUGIN_FILE ) ) );
define( 'WPBDP_INC', trailingslashit( WPBDP_PATH . 'includes' ) );
Expand Down Expand Up @@ -699,7 +699,7 @@ private function can_edit_listing_images( $listing_id ) {
* Authenticated users need attachment-level delete rights. Guests already
* proved listing access via submit token or access key.
*
* @since x.x
* @since 6.4.28
*
* @param int $image_id Attachment ID.
* @param int $listing_id Listing ID.
Expand Down Expand Up @@ -785,7 +785,7 @@ public function ajax_listing_media_image() {
/**
* Whether every selected Media Library image may be attached to a listing.
*
* @since x.x
* @since 6.4.28
*
* @param int[] $image_ids Attachment IDs.
* @param int $listing_id Listing ID.
Expand All @@ -805,7 +805,7 @@ private function can_attach_listing_media_images( $image_ids, $listing_id ) {
/**
* Keep only images that are actually parented to the listing.
*
* @since x.x
* @since 6.4.28
*
* @param int[] $image_ids Attachment IDs.
* @param int $listing_id Listing ID.
Expand All @@ -828,7 +828,7 @@ private function filter_attached_listing_images( $image_ids, $listing_id ) {
/**
* Render listing image rows for a successful Media Library attach.
*
* @since x.x
* @since 6.4.28
*
* @param int[] $image_ids Attachment IDs.
* @param int $listing_id Listing ID.
Expand Down
2 changes: 1 addition & 1 deletion includes/db/class-db-query-set.php
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ private function maybe_execute_query() {
/**
* Return a trusted column name from a filter key, or an empty string.
*
* @since x.x
* @since 6.4.28
*
* @param string $field Filter map key.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -501,7 +501,7 @@ private function maybe_reactivate_listing( $listing_id ) {
/**
* Whether a recovered Stripe payment may restore the listing to publish.
*
* @since x.x
* @since 6.4.28
*
* @param WPBDP_Listing $listing Listing being recovered.
* @param mixed $failed_data Stored failure metadata.
Expand Down
6 changes: 3 additions & 3 deletions includes/helpers/class-listing-image.php
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public static function get( $id ) {
/**
* Normalize a request image ID list into unique positive integers.
*
* @since x.x
* @since 6.4.28
*
* @param mixed $image_ids Raw image IDs from a request.
*
Expand Down Expand Up @@ -90,7 +90,7 @@ public static function normalize_image_ids( $image_ids ) {
/**
* Whether an attachment may be attached to a listing from the Media Library.
*
* @since x.x
* @since 6.4.28
*
* @param int $image_id Attachment ID.
* @param int $listing_id Listing ID.
Expand Down Expand Up @@ -120,7 +120,7 @@ public static function can_attach_from_media_library( $image_id, $listing_id ) {
/**
* Whether an attachment is already linked to a listing.
*
* @since x.x
* @since 6.4.28
*
* @param int $image_id Attachment ID.
* @param int $listing_id Listing ID.
Expand Down
16 changes: 8 additions & 8 deletions includes/models/class-listing.php
Original file line number Diff line number Diff line change
Expand Up @@ -608,7 +608,7 @@ public function renew( $context = 'admin' ) {
/**
* Whether this listing may be renewed in the given context.
*
* @since x.x
* @since 6.4.28
*
* @param string $context Renewal context. One of cron, owner, admin, gateway, payment.
*
Expand All @@ -629,7 +629,7 @@ public function can_renew( $context = 'admin' ) {
*
* Draft listings that expired from publish are not holds.
*
* @since x.x
* @since 6.4.28
*
* @return bool
*/
Expand All @@ -646,7 +646,7 @@ public function is_publication_held() {
/**
* Whether renewal may restore this listing to publish.
*
* @since x.x
* @since 6.4.28
*
* @return bool
*/
Expand All @@ -663,7 +663,7 @@ public function should_publish_on_renewal() {
/**
* Mark a listing complete after renewal and publish only when allowed.
*
* @since x.x
* @since 6.4.28
*
* @param string $context Renewal context.
*/
Expand All @@ -682,7 +682,7 @@ public function complete_renewal( $context = 'admin' ) {
/**
* Whether the listing expired from a published state.
*
* @since x.x
* @since 6.4.28
*
* @return bool
*/
Expand All @@ -693,7 +693,7 @@ public function has_expiration_provenance() {
/**
* Contexts that must not mutate held listings.
*
* @since x.x
* @since 6.4.28
*
* @param string $context Renewal context.
*
Expand All @@ -706,7 +706,7 @@ private function renewal_requires_public_listing( $context ) {
/**
* Move a published listing to draft when it expires, preserving admin holds.
*
* @since x.x
* @since 6.4.28
*/
private function unpublish_expired_listing() {
if ( 'publish' !== get_post_status( $this->id ) ) {
Expand All @@ -718,7 +718,7 @@ private function unpublish_expired_listing() {
}

/**
* @since x.x
* @since 6.4.28
*/
private function clear_expiration_provenance() {
delete_post_meta( $this->id, '_wpbdp_expired_from_publish' );
Expand Down
Loading
Loading