Plugin Directory

Changeset 3749408


Ignore:
Timestamp:
10/15/2026 10:32:39 PM (3 weeks ago)
Author:
ancestorpress
Message:

Release 1.0.1

Location:
ap-casework-manager/trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • ap-casework-manager/trunk/ap-casework-manager.php

    r3728280 r3749408  
    1212 * Plugin URI:        https://www.ancestorpress.com/ap-casework-manager-wordpress-plugin/
    1313 * Description:       Client casework for professional genealogists, on your own website: enquiries, client records with GDPR tools, a genealogy intake form sent as a private link, and secure uploads.
    14  * Version:           1.0.0
     14 * Version:           1.0.1
    1515 * Requires at least: 6.2
    1616 * Requires PHP:      8.0
    … …  
    3030 * Current plugin version.
    3131 */
    32 define( 'APCWM_VERSION', '1.0.0' );
     32define( 'APCWM_VERSION', '1.0.1' );
    3333/**
    3434 * Plugin directory path and URL constants.
  • ap-casework-manager/trunk/readme.txt

    r3728746 r3749408  
    55Tested up to: 7.1
    66Requires PHP: 8.0
    7 Stable tag: 1.0.0
     7Stable tag: 1.0.1
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
    … …  
    118118== Credits ==
    119119
    120 * [Freemius WordPress SDK](https://github.com/Freemius/wordpress-sdk) - GPLv3; release 2.13.4 with a small local PHP 8 fix (marked 2.13.5), described in vendor/freemius/BWD-PATCH-NOTES.md.
     120* [Freemius WordPress SDK](https://github.com/Freemius/wordpress-sdk) - GPLv3; release 2.13.5 with a small local PHP 8 fix, described in vendor/freemius/BWD-PATCH-NOTES.md.
    121121* The Pro edition also bundles [dompdf](https://github.com/dompdf/dompdf) (LGPL-2.1) with php-font-lib (LGPL-2.1-or-later), php-svg-lib (LGPL-3.0-or-later), masterminds/html5 and sabberworm/php-css-parser (both MIT), the DejaVu fonts (Bitstream Vera licence) and the [Libre Baskerville](https://github.com/impallari/Libre-Baskerville) font (SIL Open Font Licence 1.1). Each keeps its own licence file.
    122122
    123123== Changelog ==
    124124
     125= 1.0.1 =
     126
     127* Updated Freemius SDK to the latest version.
     128
    125129= 1.0.0 =
    126130
  • ap-casework-manager/trunk/vendor/freemius/BWD-PATCH-NOTES.md

    r3728280 r3749408  
    11# BWD local patch to the vendored Freemius SDK
    22
    3 **Applied:** 2026-07-22 · **Base SDK:** Freemius WordPress SDK 2.13.4 (byte-identical
    4 to upstream `master` @ `fa43eb9` at time of patching) · **Marker after patch:** `2.13.5`
     3**Base SDK:** Freemius WordPress SDK **2.13.5**, as issued by Freemius. **Marker: `2.13.5`,
     4unchanged.**
    55
    6 ## Why
     6## What is patched
    77
    8 On PHP 8 + WordPress multisite, activating a Freemius plugin as a **network admin**
    9 took the network opt-in path (`fs_is_network_admin()` → `setup_network_account` →
    10 `_store_account` → `_store_plans`) with `$this->_plans` still `false`. The SDK then
    11 called `count( $this->_plans )` **unguarded**, which is a fatal `TypeError` on PHP 8
    12 (`count(): Argument #1 must be of type Countable|array, bool given`). This took down
    13 admin pages and, on some sites, the front end.
     8Six unguarded `count( $this->_plans )` calls in `includes/class-freemius.php` get `is_array()`
     9guards. On PHP 8 multisite, network activation reaches them with `_plans === false`, which is a
     10fatal TypeError. Nothing else differs from the Freemius release.
    1411
    15 The bug is present in the latest Freemius code — the 2.13.4 tag **and** `master`/
    16 `develop` (verified by diff: our vendored copy is byte-identical to upstream master,
    17 and the crash line is unchanged there). Freemius already guards `$this->_plans` with
    18 `is_array()` in ~5 other places in the same file, but **not** on these lines. There is
    19 no upstream release to update to, so this is patched locally until Freemius ships a fix.
     12## Rule
    2013
    21 ## What changed
    22 
    23 `includes/class-freemius.php` — every unguarded `count( $this->_plans )` now short-
    24 circuits on a non-array, matching Freemius's own guard style elsewhere in the file
    25 (`is_array( $this->_plans ) ? count( $this->_plans ) : 0`). Behaviour-preserving: when
    26 `$this->_plans` is an array the result is identical; when it is `false`/`null` the loop
    27 count is `0` instead of fataling. Guarded lines (original numbering): the four
    28 `$len = count( $this->_plans )` loops (incl. `_store_plans`, the crash site ~19872) and
    29 the two arithmetic counts (~12862, ~24072). The three `! is_array( … ) || 0 === count( … )`
    30 short-circuit conditions were already safe and were left untouched.
    31 
    32 `start.php` — `$this_sdk_version` nudged `2.13.4` → `2.13.5` so this fixed copy wins the
    33 Freemius newest-wins loader over any unpatched `2.13.4` copy bundled by another plugin on
    34 the same site (Freemius loads exactly one SDK per site).
    35 
    36 ## Upstream
    37 
    38 Report/PR filed with Freemius (`Freemius/wordpress-sdk`). When an official release
    39 contains the guard, **re-vendor the stock SDK verbatim** and delete this file — do not
    40 carry the local patch forward once upstream is fixed.
    41 
    42 ## Re-applying after a re-vendor (if upstream still unfixed)
    43 
    44 Guard every `count( $this->_plans )` that is NOT already inside a
    45 `! is_array( $this->_plans ) || …` short-circuit, and bump `$this_sdk_version` above the
    46 stock value.
     14Keep the marker equal to the Freemius base version and record the base here. Never bump the
     15marker for a local patch: compare the SDK by content, never by its version string.
  • ap-casework-manager/trunk/vendor/freemius/includes/class-freemius.php

    r3728280 r3749408  
    45414541
    45424542            if ( $this->is_user_in_admin() ) {
    4543                 if ( $this->is_registered() && fs_request_has( 'purchase_completed' ) ) {
    4544                     $this->_admin_notices->add_sticky(
    4545                         sprintf(
    4546                         /* translators: %s: License type (e.g. you have a professional license) */
    4547                             $this->get_text_inline( 'You have purchased a %s license.', 'you-have-x-license' ),
    4548                             fs_request_get( 'purchased_plan' )
    4549                         ) .
    4550                         sprintf(
    4551                             $this->get_text_inline(" The %s's %sdownload link%s, license key, and installation instructions have been sent to %s. If you can't find the email after 5 min, please check your spam box.", 'post-purchase-email-sent-message' ),
    4552                             $this->get_module_label( true ),
    4553                             ( FS_Plugin::is_valid_id( $this->get_bundle_id() ) ? "products' " : '' ),
    4554                             ( FS_Plugin::is_valid_id( $this->get_bundle_id() ) ? 's' : '' ),
    4555                             sprintf(
    4556                                 '<strong>%s</strong>',
    4557                                 fs_request_get( 'purchase_email' )
    4558                             )
    4559                         ),
    4560                         'plan_purchased',
    4561                         $this->get_text_x_inline( 'Yee-haw', 'interjection expressing joy or exuberance', 'yee-haw' ) . '!'
    4562                     );
    4563                 }
    4564 
    45654543                if ( $this->is_addon() ) {
    45664544                    if ( ! $this->is_parent_plugin_installed() ) {
    … …  
    48644842                $code = empty( $result->error->code ) ? '' : " Code: {$result->error->code}";
    48654843
    4866                 $error_message .= "<b>{$result->error->message}{$code}</b>";
     4844                // We do not send HTML from exceptions from Freemius servers, but we escape it nonetheless.
     4845                $error_message .= "<b>" . esc_html( $result->error->message . $code ) . "</b>";
    48674846            } else {
    4868                 $error_message .= var_export( $result, true );
     4847                $error_message .= esc_html( var_export( $result, true ) );
    48694848            }
    48704849
    … …  
    67986777            }
    67996778
     6779            $escaped_email_address = esc_html( $email_address );
     6780
    68006781            $formatted_message_args = array(
    68016782                "<b>{$this->get_plugin_name()}</b>",
    6802                 "<b>{$email_address}</b>",
     6783                "<b>{$escaped_email_address}</b>",
    68036784            );
    68046785
    … …  
    68456826
    68466827                $formatted_message_args[] = ( ! empty( $support_email_address ) ) ?
    6847                     ( "<b>{$support_email_address}</b>" ) :
     6828                    ( "<b>" . esc_html( $support_email_address ) . "</b>" ) :
    68486829                    $this->get_text_x_inline(
    68496830                        "the product's support email address",
    … …  
    1756517546            }
    1756617547
     17548            // Only site administrators who can activate plugins may opt-in.
     17549            if ( ! $this->is_user_admin() ) {
     17550                return;
     17551            }
     17552
    1756717553            $has_pending_activation_confirmation_param = fs_request_has( 'pending_activation' );
    1756817554
    … …  
    1814418130                    $this->_admin_notices->add(
    1814518131                        sprintf( $this->get_text_inline( 'Couldn\'t activate %s.', 'could-not-activate-x' ), $this->get_plugin_name() ) . ' ' .
    18146                         $this->get_text_inline( 'Please contact us with the following message:', 'contact-us-with-error-message' ) . ' ' . '<b>' . $result->error->message . '</b>',
     18132                        $this->get_text_inline( 'Please contact us with the following message:', 'contact-us-with-error-message' ) . ' ' . '<b>' . esc_html( $result->error->message ) . '</b>',
    1814718133                        $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
    1814818134                        'error'
    … …  
    1826418250                    $this->_admin_notices->add(
    1826518251                        sprintf( $this->get_text_inline( 'Couldn\'t activate %s.', 'could-not-activate-x' ), $this->get_plugin_name() ) . ' ' .
    18266                         $this->get_text_inline( 'Please contact us with the following message:', 'contact-us-with-error-message' ) . ' ' . '<b>' . $error_message . '</b>',
     18252                        $this->get_text_inline( 'Please contact us with the following message:', 'contact-us-with-error-message' ) . ' ' . '<b>' . esc_html( $error_message ) . '</b>',
    1826718253                        $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
    1826818254                        'error'
    … …  
    1844118427                $this->_admin_notices->add(
    1844218428                    sprintf( $this->get_text_inline( 'Couldn\'t activate %s.', 'could-not-activate-x' ), $this->get_plugin_name() ) . ' ' .
    18443                     $this->get_text_inline( 'Please contact us with the following message:', 'contact-us-with-error-message' ) . ' ' . '<b>' . $parent_install->error->message . '</b>',
     18429                    $this->get_text_inline( 'Please contact us with the following message:', 'contact-us-with-error-message' ) . ' ' . '<b>' . esc_html( $parent_install->error->message ) . '</b>',
    1844418430                    $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
    1844518431                    'error'
    … …  
    2115921145                            // Authentication params are broken.
    2116021146                            $this->_admin_notices->add(
    21161                                 $this->get_text_inline( 'It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again.', 'wrong-authentication-param-message' ) . '<br> ' . $this->get_text_inline( 'Error received from the server:', 'server-error-message' ) . var_export( $result->error, true ),
     21147                                $this->get_text_inline( 'It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again.', 'wrong-authentication-param-message' ) . '<br> ' . $this->get_text_inline( 'Error received from the server:', 'server-error-message' ) . esc_html( var_export( $result->error, true ) ),
    2116221148                                '',
    2116321149                                'error'
    … …  
    2148021466                            sprintf(
    2148121467                                '<a href="%s">%s</a>',
    21482                                 $this->contact_url( 'bug' ),
     21468                                esc_url( $this->contact_url( 'bug' ) ),
    2148321469                                $this->get_text_inline( 'Please contact us here', 'contact-us-here' )
    2148421470                            ),
    … …  
    2157321559                '<div class="fs-api-request-error-details" style="display: none">' .
    2157421560                    '<strong>' . $this->get_text_inline( 'Error received from the server:', 'server-error-message' ) . '</strong><br>' .
    21575                     $result->error->message .
     21561                    esc_html( $result->error->message ) .
    2157621562                '</div>';
    2157721563
    … …  
    2167821664                        $this->get_text_inline( 'It looks like the license could not be activated.', 'license-activation-failed-message' ),
    2167921665                        ( is_object( $license ) && isset( $license->error ) ?
    21680                             $license->error->message :
     21666                            esc_html( $license->error->message ) :
    2168121667                            sprintf( '%s<br><code>%s</code>',
    2168221668                                $this->get_text_inline( 'Error received from the server:', 'server-error-message' ),
    21683                                 var_export( $license, true )
     21669                                esc_html( var_export( $license, true ) )
    2168421670                            )
    2168521671                        )
    … …  
    2176921755                $this->_admin_notices->add(
    2177021756                    $this->get_text_inline( 'It looks like the license deactivation failed.', 'license-deactivation-failed-message' ) . '<br> ' .
    21771                     $this->get_text_inline( 'Error received from the server:', 'server-error-message' ) . ' ' . var_export( $license->error, true ),
     21757                    $this->get_text_inline( 'Error received from the server:', 'server-error-message' ) . ' ' . esc_html( var_export( $license->error, true ) ),
    2177221758                    $hmm_text,
    2177321759                    'error'
    … …  
    2241822404                            sprintf(
    2241922405                                '<a href="%s" target="_blank" rel="noopener">%s</a>',
    22420                                 $this->get_account_url( 'download_latest' ),
     22406                                esc_url( $this->get_account_url( 'download_latest' ) ),
    2242122407                                sprintf(
    2242222408                                /* translators: %s: plan name (e.g. latest "Professional" version) */
    … …  
    2283622822                $this->_admin_notices->add( sprintf(
    2283722823                    $this->get_text_inline( 'Verification mail was just sent to %s. If you can\'t find it after 5 min, please check your spam box.', 'verification-email-sent-message' ),
    22838                     sprintf( '<a href="mailto:%1$s">%2$s</a>', esc_url( $this->_user->email ), $this->_user->email )
     22824                    sprintf( '<a href="mailto:%1$s">%2$s</a>', esc_url( $this->_user->email ), esc_html( $this->_user->email ) )
    2283922825                ) );
    2284022826            } else {
    … …  
    2316023146                            if ( $this->init_change_owner( $candidate_email, $transfer_type ) ) {
    2316123147                                if ( 'transfer' === $transfer_type ) {
    23162                                     $this->_admin_notices->add( sprintf( $this->get_text_inline( 'A confirmation email was just sent to %s. The email owner must confirm the update within the next 4 hours.', 'change-owner-request-sent-x-transfer' ), '<b>' . $this->_user->email . '</b>' ) );
     23148                                    $this->_admin_notices->add( sprintf( $this->get_text_inline( 'A confirmation email was just sent to %s. The email owner must confirm the update within the next 4 hours.', 'change-owner-request-sent-x-transfer' ), '<b>' . esc_html( $this->_user->email ) . '</b>' ) );
    2316323149                                } else {
    23164                                     $this->_admin_notices->add( sprintf( $this->get_text_inline( 'A confirmation email was just sent to %s. You must confirm the update within the next 4 hours. If you cannot find the email, please check your spam folder.', 'change-owner-request-sent-x' ), '<b>' . $this->_user->email . '</b>' ) );
     23150                                    $this->_admin_notices->add( sprintf( $this->get_text_inline( 'A confirmation email was just sent to %s. You must confirm the update within the next 4 hours. If you cannot find the email, please check your spam folder.', 'change-owner-request-sent-x' ), '<b>' . esc_html( $this->_user->email ) . '</b>' ) );
    2316523151                                }
    2316623152                            }
    … …  
    2317423160                            }
    2317523161
    23176                             $this->_admin_notices->add( sprintf( $this->get_text_inline( 'Thanks for confirming the ownership change. An email was just sent to %s for final approval.', 'change-owner-request_owner-confirmed' ), '<b>' . $candidate_email . '</b>' ) );
     23162                            $this->_admin_notices->add( sprintf( $this->get_text_inline( 'Thanks for confirming the ownership change. An email was just sent to %s for final approval.', 'change-owner-request_owner-confirmed' ), '<b>' . esc_html( $candidate_email ) . '</b>' ) );
    2317723163                            break;
    2317823164                        case 'candidate_confirmed':
    … …  
    2318023166                            if ( $this->complete_change_owner() ) {
    2318123167                                $this->_admin_notices->add_sticky(
    23182                                     sprintf( $this->get_text_inline( '%s is the new owner of the account.', 'change-owner-request_candidate-confirmed' ), '<b>' . $this->_user->email . '</b>' ),
     23168                                    sprintf( $this->get_text_inline( '%s is the new owner of the account.', 'change-owner-request_candidate-confirmed' ), '<b>' . esc_html( $this->_user->email ) . '</b>' ),
    2318323169                                    'ownership_changed',
    2318423170                                    $this->get_text_x_inline( 'Congrats', 'as congratulations', 'congrats' ) . '!'
  • ap-casework-manager/trunk/vendor/freemius/includes/managers/class-fs-clone-manager.php

    r3728280 r3749408  
    12241224
    12251225                foreach ( $product_titles as $product_title ) {
    1226                     $products_list .= sprintf( '<li>%s</li>', $product_title );
     1226                    $products_list .= sprintf( '<li>%s</li>', esc_html( $product_title ) );
    12271227                }
    12281228
    … …  
    12321232                    $sites_list .= sprintf(
    12331233                        '<li><a href="%s" target="_blank">%s</a></li>',
    1234                         $site_url,
    1235                         fs_strip_url_protocol( $site_url )
     1234                        esc_url( $site_url ),
     1235                        esc_html( fs_strip_url_protocol( $site_url ) )
    12361236                    );
    12371237                }
    … …  
    12431243                sprintf(
    12441244                    '<a href="%s" target="_blank">%s</a>',
    1245                     $site_urls[0],
    1246                     fs_strip_url_protocol( $site_urls[0] )
     1245                    esc_url( $site_urls[0] ),
     1246                    esc_html( fs_strip_url_protocol( $site_urls[0] ) )
    12471247                ) :
    12481248                fs_text_inline( 'the above-mentioned sites', 'above-mentioned-sites' )) . '</b>';
    … …  
    12501250            $current_site_link = sprintf(
    12511251                '<b><a href="%s" target="_blank">%s</a></b>',
    1252                 $current_url,
    1253                 fs_strip_url_protocol( $current_url )
     1252                esc_url( $current_url ),
     1253                esc_html( fs_strip_url_protocol( $current_url ) )
    12541254            );
    12551255
    … …  
    13241324                // %1$s
    13251325                ( 1 === $total_products ?
    1326                     sprintf( '<b>%s</b>', $product_titles[0] ) :
     1326                    sprintf( '<b>%s</b>', esc_html( $product_titles[0] ) ) :
    13271327                    ( 1 === $total_sites ?
    13281328                        sprintf( '<div>%s</div>', $products_list ) :
  • ap-casework-manager/trunk/vendor/freemius/start.php

    r3728280 r3749408  
    1616         * @var string
    1717         */
    18         // BWD LOCAL PATCH (2026-07-22): guarded the unguarded count( $this->_plans )
    19         // calls in includes/class-freemius.php against a non-array (bool) value, which
    20         // fataled on PHP 8 during the multisite network-admin opt-in (_store_plans).
    21         // Freemius 2.13.4 / master carry the bug unfixed. Version nudged to 2.13.5 so
    22         // this fixed copy wins the newest-wins loader over unpatched 2.13.4 copies on
    23         // the same site. See vendor/freemius/BWD-PATCH-NOTES.md. Revert to the stock
    24         // version string when Freemius ships an official fix.
    2518        $this_sdk_version = '2.13.5';
    2619
  • ap-casework-manager/trunk/vendor/freemius/templates/add-ons.php

    r3728280 r3749408  
    123123                                                $open_addon = ( $open_addon || ( $open_addon_slug === $addon->slug ) );
    124124
    125                                                 $price     = 0;
    126                                                 $has_trial = false;
     125                                                $price         = 0;
     126                        $min_price     = 999999;
     127                                                $has_trial     = false;
    127128                                                $has_free_plan = false;
    128129                                                $has_paid_plan = false;
    … …  
    142143                                                                        }
    143144
    144 
    145145                                                                        $has_paid_plan = true;
    146146                                                                        $has_trial     = $has_trial || ( is_numeric( $plan->trial_period ) && ( $plan->trial_period > 0 ) );
    147147
    148                                                                         $min_price = 999999;
    149148                                                                        foreach ( $plan->pricing as $pricing ) {
    150149                                        $pricing = new FS_Pricing( $pricing );
    … …  
    164163                                                                                } else if ( $pricing->has_monthly() ) {
    165164                                                                                        $min_price = min( $min_price, 12 * $pricing->monthly_price );
    166                                                                                 }
     165                                                                                } else if ( $pricing->has_lifetime() ) {
     166                                            $min_price = min( $min_price, $pricing->lifetime_price );
     167                                        }
    167168                                                                        }
    168169
    … …  
    170171                                                                                $price = $min_price;
    171172                                                                        }
    172 
    173173                                                                }
    174174                                                        }
  • ap-casework-manager/trunk/vendor/freemius/templates/pricing.php

    r3728280 r3749408  
    2525
    2626        $context_params = array(
     27        // Plugin information
    2728                'plugin_id'         => $fs->get_id(),
    2829                'plugin_public_key' => $fs->get_public_key(),
    2930                'plugin_version'    => $fs->get_plugin_version(),
     31
     32        // React pricing app context
     33        'contact_url'            => $fs->contact_url(),
     34        'is_production'          => ( defined( 'WP_FS__IS_PRODUCTION_MODE' ) ? WP_FS__IS_PRODUCTION_MODE : null ),
     35        'menu_slug'              => $fs->get_menu_slug(),
     36        'mode'                   => 'dashboard',
     37        'fs_wp_endpoint_url'     => WP_FS__ADDRESS,
     38        'request_handler_url'    => admin_url(
     39            'admin-ajax.php?' . http_build_query( array(
     40                'module_id' => $fs->get_id(),
     41                'action'    => $fs->get_ajax_action( 'pricing_ajax_action' ),
     42                'security'  => $fs->get_ajax_security( 'pricing_ajax_action' )
     43            ) )
     44        ),
     45        'selector'               => '#fs_pricing_wrapper',
     46        'unique_affix'           => $fs->get_unique_affix(),
     47        'show_annual_in_monthly' => $fs->apply_filters( 'pricing/show_annual_in_monthly', true ),
     48        'license'                => $fs->has_active_valid_license() ? $fs->_get_license() : null,
     49        'plugin_icon'            => $fs->get_local_icon_url(),
     50        'disable_single_package' => $fs->apply_filters( 'pricing/disable_single_package', false ),
    3051        );
    3152
    … …  
    5576        }
    5677
    57         $query_params = array_merge( $context_params, $_GET, array(
     78        $query_params = array_merge( $_GET, array(
    5879                'next'             => $fs->_get_sync_license_url( false, false ),
    59                 'plugin_version'   => $fs->get_plugin_version(),
    6080                // Billing cycle.
    6181                'billing_cycle'    => fs_request_get( 'billing_cycle', WP_FS__PERIOD_ANNUALLY ),
    … …  
    6484        'discounts_model'  => $fs->apply_filters( 'pricing/discounts_model', 'absolute' ),
    6585        ) );
     86
     87        $has_tabs = $fs->_add_tabs_before_content();
     88
     89        if ( $has_tabs ) {
     90                $query_params['tabs'] = 'true';
     91        }
     92
     93    $pricing_config = array_merge( $query_params, $context_params );
    6694
    6795    $pricing_js_url = fs_asset_url( $fs->get_pricing_js_path() );
    … …  
    73101        wp_enqueue_style( 'freemius-pricing', fs_asset_url( $pricing_css_path ) );
    74102    }
    75 
    76         $has_tabs = $fs->_add_tabs_before_content();
    77 
    78         if ( $has_tabs ) {
    79                 $query_params['tabs'] = 'true';
    80         }
    81103?>
    82104        <div id="fs_pricing" class="wrap fs-section fs-full-size-wrapper">
    83105        <div id="fs_pricing_wrapper" data-public-url="<?php echo trailingslashit( dirname( $pricing_js_url ) ) ?>"></div>
    84         <?php
    85         $pricing_config = array_merge( array(
    86             'contact_url'            => $fs->contact_url(),
    87             'is_production'          => ( defined( 'WP_FS__IS_PRODUCTION_MODE' ) ? WP_FS__IS_PRODUCTION_MODE : null ),
    88             'menu_slug'              => $fs->get_menu_slug(),
    89             'mode'                   => 'dashboard',
    90             'fs_wp_endpoint_url'     => WP_FS__ADDRESS,
    91             'request_handler_url'    => admin_url(
    92                 'admin-ajax.php?' . http_build_query( array(
    93                     'module_id' => $fs->get_id(),
    94                     'action'    => $fs->get_ajax_action( 'pricing_ajax_action' ),
    95                     'security'  => $fs->get_ajax_security( 'pricing_ajax_action' )
    96                 ) )
    97             ),
    98             'selector'               => '#fs_pricing_wrapper',
    99             'unique_affix'           => $fs->get_unique_affix(),
    100             'show_annual_in_monthly' => $fs->apply_filters( 'pricing/show_annual_in_monthly', true ),
    101             'license'                => $fs->has_active_valid_license() ? $fs->_get_license() : null,
    102             'plugin_icon'            => $fs->get_local_icon_url(),
    103             'disable_single_package' => $fs->apply_filters( 'pricing/disable_single_package', false ),
    104         ), $query_params );
    105 
    106         wp_add_inline_script( 'freemius-pricing', 'Freemius.pricing.new( ' . json_encode( $pricing_config ) . ' )' );
    107         ?>
     106        <?php wp_add_inline_script( 'freemius-pricing', 'Freemius.pricing.new( ' . json_encode( $pricing_config ) . ' )' ); ?>
    108107        </div>
    109108<?php
Note: See TracChangeset for help on using the changeset viewer.