Plugin Directory

Changeset 3479072


Ignore:
Timestamp:
03/10/2026 12:46:13 PM (3 weeks ago)
Author:
cmsjunkie
Message:

Fixed a security vulnerability
Fixed path-related bugs in multiple files

Location:
wp-businessdirectory/trunk
Files:
26 edited

Legend:

Unmodified
Added
Removed
  • wp-businessdirectory/trunk/admin/controllers/jbusinessdirectory.php

    r3467989 r3479072  
    7272
    7373    public function installApp() {
     74        if (!current_user_can('manage_options')) {
     75            wp_send_json_error(['message' => __('You do not have permission to install apps.', 'jbusinessdirectory')], 403);
     76        }
     77
     78        if (!isset($_POST['wpbd_install_app_nonce']) || !wp_verify_nonce(sanitize_text_field(wp_unslash($_POST['wpbd_install_app_nonce'])), 'wpbd_install_app')) {
     79            wp_send_json_error(['message' => __('Security check failed.', 'jbusinessdirectory')], 403);
     80        }
     81
    7482        $model = $this->getModel();
    7583        $result = $model->bulkInstallApps();
  • wp-businessdirectory/trunk/admin/models/applicationsettings.php

    r3467989 r3479072  
    11051105     */
    11061106    public function clearOSMCache() {
    1107         $cacheDir = JPATH_SITE.'/components/com_jbusinessdirectory/libraries/cache';
     1107        $cacheDir = JPATH_COMPONENT_SITE . '/libraries/cache';
    11081108
    11091109        $result = true;
  • wp-businessdirectory/trunk/admin/models/category.php

    r3467989 r3479072  
    714714
    715715    public function getCategoryTypes() {
    716         BaseDatabaseModel::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR . '/components/com_jbusinessdirectory/models', 'Categories');
     716        BaseDatabaseModel::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR . '/models', 'Categories');
    717717        $model = BaseDatabaseModel::getInstance('Categories', 'JBusinessDirectoryModel', array('ignore_request' => true));
    718718        $types = $model->getCategoryTypes();
  • wp-businessdirectory/trunk/admin/models/database.php

    r3467989 r3479072  
    121121     */
    122122    public function getInstallationDBSchema() {
    123         $installationSQLPath = JPATH_ADMINISTRATOR . '/components/com_jbusinessdirectory/sql/install.sql';
     123        $installationSQLPath = JPATH_COMPONENT_ADMINISTRATOR . '/sql/install.sql';
    124124        $installationSQL="";
    125125        try {
     
    139139     */
    140140    public function getItems() {
    141         $folder = JPATH_ADMINISTRATOR . '/components/com_jbusinessdirectory/sql/updates/';
     141        $folder = JPATH_COMPONENT_ADMINISTRATOR . '/sql/updates/';
    142142       
    143143        try {
     
    690690        $db = $this->getDbo();
    691691
    692         $updateSQLPath = JPATH_ADMINISTRATOR . '/components/com_jbusinessdirectory/sql/update_default.sql';
     692        $updateSQLPath = JPATH_COMPONENT_ADMINISTRATOR . '/sql/update_default.sql';
    693693        $updateSQL="";
    694694        try {
  • wp-businessdirectory/trunk/admin/models/jbusinessdirectory.php

    r3467989 r3479072  
    777777    public function getAppPackage($file) {
    778778        $userfile    = $file;
    779         $packageName = $userfile['name'];
     779
     780        // Sanitize the raw filename: strip directory components and normalize.
     781        $packageName = sanitize_file_name(basename($userfile['name']));
     782
     783        // Enforce that the uploaded file is a .zip — reject anything else.
     784        if (strtolower(pathinfo($packageName, PATHINFO_EXTENSION)) !== 'zip') {
     785            throw new Exception(Text::_('LNG_BAD_PACKAGE'));
     786        }
     787
     788        // Validate against the whitelist BEFORE touching the filesystem.
     789        if (!$this->isFound($this->directoryApps, $packageName)) {
     790            throw new Exception(Text::_('LNG_BAD_PACKAGE'));
     791        }
     792
     793        $packageSlug = pathinfo($packageName, PATHINFO_FILENAME);
    780794
    781795        $upload_dir = wp_upload_dir();
     
    785799        }
    786800
    787         $filename = wp_unique_filename($user_dirname, $file['name']);
     801        $filename = wp_unique_filename($user_dirname, $packageName);
    788802        $filePath = $user_dirname . '/' . $filename;
    789803        move_uploaded_file($userfile['tmp_name'], $filePath);
     
    792806        WP_Filesystem();
    793807
    794         $dest = $user_dirname."/".substr($packageName, 0, strpos($packageName,"."));
    795        
     808        // Use the sanitized slug (no raw user input) as the extraction subdirectory.
     809        $dest = $user_dirname . '/' . $packageSlug;
     810
    796811        if (!file_exists($dest)) {
    797812            wp_mkdir_p($dest);
     
    799814        unzip_file($filePath, $dest);
    800815
    801         $package = array();
    802        
    803         $package["dir"] = $dest;
    804 
    805         if ($this->isFound($this->directoryApps, $packageName)) {
    806             $package["name"] = $packageName;
    807         }
     816        $package          = array();
     817        $package["dir"]   = $dest;
     818        $package["name"]  = $packageName;
    808819
    809820        return $package;
     
    859870     */
    860871    public function installApp($file) {
    861         try {
    862             $package = $this->getAppPackage($file);
    863         } catch (Exception $e) {
    864             throw(new Exception($e->getMessage()));
    865         }
    866 
    867         if (isset($package["name"])) {
    868             return $this->installDirectoryApp($package);
    869         }
    870 
    871        
    872         return $result;
     872        // getAppPackage() throws on any validation failure, so $package is
     873        // always a fully-populated array when we reach installDirectoryApp().
     874        $package = $this->getAppPackage($file);
     875        return $this->installDirectoryApp($package);
    873876    }
    874877
     
    12591262        $dir = opendir($src);
    12601263        if (!is_dir($dst)) {
    1261             mkdir($dst, 0777);
     1264            mkdir($dst, 0755);
    12621265        }
    12631266
    12641267        while (($file = readdir($dir)) !== false) {
    1265             if (($file != '.') && ($file != '..') && ($file != '.svn')) {
    1266                 if (is_dir($src . '/' . $file)) {
    1267                     $this->copyToDestination($src . DS . $file, $dst . DS . $file);
    1268                 } else {
    1269                     copy($src . DS . $file, $dst . DS . $file);
    1270                 }
     1268            if (($file === '.') || ($file === '..') || ($file === '.svn')) {
     1269                continue;
     1270            }
     1271
     1272            $srcFile = $src . DS . $file;
     1273            $dstFile = $dst . DS . $file;
     1274
     1275            if (is_dir($srcFile)) {
     1276                $this->copyToDestination($srcFile, $dstFile);
     1277            } else {
     1278                copy($srcFile, $dstFile);
    12711279            }
    12721280        }
  • wp-businessdirectory/trunk/admin/models/updates.php

    r3467989 r3479072  
    346346    public function store($post) {
    347347        // Load the ApplicationSettings table class
    348         Table::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_jbusinessdirectory/tables');
     348        Table::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR . '/tables');
    349349        $table = Table::getInstance('ApplicationSettings', 'JTable');
    350350       
  • wp-businessdirectory/trunk/admin/views/applicationsettings/tmpl/businesslistings.php

    r3467989 r3479072  
    627627                            </div>
    628628
    629                             <?php if(file_exists(JPATH_ADMINISTRATOR.'/components/com_jbusinessdirectory/models/companyservice.php')) { ?>
     629                            <?php if(file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/companyservice.php')) { ?>
    630630                                <div class="control-group">
    631631                                    <div class="control-label"><label id="enable_services-lbl" for="enable_services" class="hasTooltip" data-toggle="tooltip" data-original-title="<strong><?php echo Text::_('LNG_ENABLE_COMPANY_SERVICES');?></strong><br/><?php echo Text::_('LNG_ENABLE_COMPANY_SERVICES_DESCRIPTION');?>" title=""><?php echo Text::_('LNG_ENABLE_COMPANY_SERVICES'); ?></label></div>
  • wp-businessdirectory/trunk/admin/views/applicationsettings/tmpl/default.php

    r3467989 r3479072  
    300300                echo $jbdTabs->endTab();
    301301
    302                 if (file_exists(JPATH_ADMINISTRATOR.'/components/com_jbusinessdirectory/models/conferences.php')){
     302                if (file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/conferences.php')){
    303303                    echo $jbdTabs->addTab('tab_general_id','panel_11', Text::_('LNG_CONFERENCES'));
    304304                    require_once 'conferences.php';
  • wp-businessdirectory/trunk/admin/views/applicationsettings/tmpl/frontend.php

    r3467989 r3479072  
    263263                <?php
    264264                $disabled = "";
    265                 if (!file_exists(JPATH_SITE.'/components/com_jbusinessdirectory/libraries/cache')) {
     265                if (!file_exists(JPATH_COMPONENT_SITE . '/libraries/cache')) {
    266266                    $disabled = "disabled";
    267267                }
  • wp-businessdirectory/trunk/admin/views/jbusinessdirectory/tmpl/default.php

    r3467989 r3479072  
    700700            });
    701701
     702            var wpbdInstallNonce = "<?php echo esc_js(wp_create_nonce('wpbd_install_app')); ?>";
     703
    702704            jQuery("#file-upload").dropzone({
    703                 acceptedFiles: ".zip,.rar",
     705                acceptedFiles: ".zip",
    704706                url: jbdUtils.getAjaxUrl('installApp', 'jbusinessdirectory'),
    705707                clickable: ".fileinput-button",
     
    709711                addRemoveLinks: true,
    710712                parallelUploads: 10,
     713                sendingmultiple: function(files, xhr, formData) {
     714                    formData.append('wpbd_install_app_nonce', wpbdInstallNonce);
     715                },
    711716                init: function() {
    712717                    let myDropzone = this;
  • wp-businessdirectory/trunk/admin/views/statistics/tmpl/default.php

    r3467989 r3479072  
    3333                                            <option value="<?php echo STATISTIC_ITEM_EVENT ?>"><?php echo Text::_('LNG_EVENTS');?></option>
    3434                                        <?php } ?>
    35                                         <?php if(file_exists(JPATH_ADMINISTRATOR.'/components/com_jbusinessdirectory/models/conference.php')) { ?>
     35                                        <?php if(file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/conference.php')) { ?>
    3636                                            <option value="<?php echo STATISTIC_ITEM_SESSION_LOCATION ?>"><?php echo Text::_('LNG_SESSION_LOCATIONS');?></option>
    3737                                        <?php } ?>
  • wp-businessdirectory/trunk/readme.txt

    r3467989 r3479072  
    44Tags: directory, business directory, classifieds, listings, membership, events, appointments, quote requests, directory plugin, directory mobile app, member directory, company directory, team directory, chamber of commerce business directory, church directory, address book, contact directory, local business directory, listings directory, link directory
    55Requires at least: 4.9
    6 Tested up to: 6.8.0
    7 Stable tag: 4.0.0
     6Tested up to: 6.9.1
     7Stable tag: 4.0.1
    88Requires PHP: 7.4
    99License: GPLv2 or later
  • wp-businessdirectory/trunk/site/classes/services/EmailService.php

    r3467989 r3479072  
    105105        }
    106106        $applicationSettings = JBusinessUtil::getApplicationSettings();
    107         Table::addIncludePath(JPATH_ROOT.'/administrator/components/com_jbusinessdirectory/tables');
     107        Table::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR . '/tables');
    108108        $offerTable = Table::getInstance("Offer", "JTable");
    109109        $offer = $offerTable->getOffer($offerId);
  • wp-businessdirectory/trunk/site/classes/services/NotificationService.php

    r3467989 r3479072  
    461461    {   
    462462       
    463         BaseDatabaseModel::addIncludePath(JPATH_ROOT . '/administrator/components/com_jbusinessdirectory/models', 'JBusinessDirectoryModel');
     463        BaseDatabaseModel::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR . '/models', 'JBusinessDirectoryModel');
    464464        $model = BaseDatabaseModel::getInstance('MobileAppNotifications', 'JBusinessDirectoryModel', array('ignore_request' => true));
    465465
  • wp-businessdirectory/trunk/site/classes/services/PaymentService.php

    r3467989 r3479072  
    1313use Joomla\CMS\Table\Table;
    1414
    15 Table::addIncludePath('administrator/components/com_jbusinessdirectory/tables');
     15Table::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR . '/tables');
    1616
    1717class PaymentService {
  • wp-businessdirectory/trunk/site/classes/services/TripBookingService.php

    r3467989 r3479072  
    7474        }
    7575
    76         Table::addIncludePath(JPATH_ROOT.'/administrator/components/com_jbusinessdirectory/tables');
     76        Table::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR . '/tables');
    7777        $tripBookingsTable = Table::getInstance('TripBookings', 'JTable', array());
    7878        $booking = $tripBookingsTable->getBookingDetails($orderId);
     
    104104        }
    105105
    106         Table::addIncludePath(JPATH_ROOT.'/administrator/components/com_jbusinessdirectory/tables');
     106        Table::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR . '/tables');
    107107        $tripBookingsTable = Table::getInstance('TripBookings', 'JTable', array());
    108108
  • wp-businessdirectory/trunk/site/classes/traits/OfferSellingSummary.php

    r3467989 r3479072  
    2727     */
    2828    public static function getOrderSummary($cartDetails) {
    29         $enableShipping = file_exists(JPATH_ADMINISTRATOR.'/components/com_jbusinessdirectory/models/shippingmethod.php') && JBusinessUtil::getApplicationSettings()->enable_shipping;
     29        $enableShipping = file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/shippingmethod.php') && JBusinessUtil::getApplicationSettings()->enable_shipping;
    3030
    3131        // Need to recalculate the total from $cartDetails based on country selection tax
  • wp-businessdirectory/trunk/site/helpers/utils.php

    r3467989 r3479072  
    634634        JBusinessUtil::enqueueStyle('css/common.css?v=' . $version);
    635635
    636         if (file_exists(JPATH_SITE . '/components/com_jbusinessdirectory/assets/css/custom.css')) {
     636        if (file_exists(JPATH_COMPONENT_SITE . '/assets/css/custom.css')) {
    637637            JBusinessUtil::enqueueStyle('css/custom.css?v=' . $version);
    638638        }
     
    47154715        $tag = JBusinessUtil::getCurrentLanguageCode();
    47164716
    4717         if (!file_exists(JPATH_SITE . '/components/com_jbusinessdirectory/assets/libraries/validation-engine/jquery.validationEngine-' . $tag . '.js')) {
     4717        if (!file_exists(JPATH_COMPONENT_SITE . '/assets/libraries/validation-engine/jquery.validationEngine-' . $tag . '.js')) {
    47184718            $tag = "en";
    47194719        }
     
    67876787        }
    67886788        $jsSettings->baseUrl =  Route::_('index.php?option=com_jbusinessdirectory');
    6789         $jsSettings->imageRepo = get_site_url() . 'components/com_jbusinessdirectory';
     6789        $jsSettings->imageRepo = WP_BUSINESSDIRECTORY_URL;
    67906790
    67916791        $jsSettings->imageBaseUrl = (BD_PICTURES_PATH);
  • wp-businessdirectory/trunk/site/models/catalog.php

    r3467989 r3479072  
    114114            }
    115115
    116             BaseDatabaseModel::addIncludePath(JPATH_SITE . '/components/com_jbusinessdirectory/models', 'Companies');
     116            BaseDatabaseModel::addIncludePath(JPATH_COMPONENT_SITE . '/models', 'Companies');
    117117            $comanyModel = BaseDatabaseModel::getInstance('Companies', 'JBusinessDirectoryModel', array('ignore_request' => true));
    118118
  • wp-businessdirectory/trunk/site/models/companies.php

    r3467989 r3479072  
    13201320     */
    13211321    public function getServices() {
    1322         if (!file_exists(JPATH_ADMINISTRATOR . '/components/com_jbusinessdirectory/tables/companyservices.php')) {
     1322        if (!file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/tables/companyservices.php')) {
    13231323            return null;
    13241324        }
  • wp-businessdirectory/trunk/site/models/directoryrss.php

    r3467989 r3479072  
    1313use Joomla\CMS\MVC\Model\ListModel;
    1414
    15 Table::addIncludePath(JPATH_ROOT.'/administrator/components/com_jbusinessdirectory/tables');
     15Table::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR . '/tables');
    1616
    1717class JBusinessDirectoryModelDirectoryRSS extends ListModel {
  • wp-businessdirectory/trunk/site/models/search.php

    r3467989 r3479072  
    718718            }
    719719
    720             BaseDatabaseModel::addIncludePath(JPATH_SITE . '/components/com_jbusinessdirectory/models', 'Companies');
     720            BaseDatabaseModel::addIncludePath(JPATH_COMPONENT_SITE . '/models', 'Companies');
    721721            $comanyModel = BaseDatabaseModel::getInstance('Companies', 'JBusinessDirectoryModel', array('ignore_request' => true));
    722722
  • wp-businessdirectory/trunk/site/views/cart/tmpl/default.php

    r3467989 r3479072  
    103103                                    <div class="row">
    104104                                        <div class="col-md-4">
    105                                             <?php if(file_exists(JPATH_ADMINISTRATOR.'/components/com_jbusinessdirectory/models/shippingmethod.php') && $this->appSettings->enable_shipping) { ?>
     105                                            <?php if(file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/shippingmethod.php') && $this->appSettings->enable_shipping) { ?>
    106106                                                <select id="shipping_method_<?php echo $companyId ?>" class="form-control shipping-method" onchange="selectShippingMethod('<?php echo $companyId ?>')">
    107107                                                    <option value="-1"><?php echo Text::_('LNG_SELECT_SHIPPING_METHOD') ?></option>
     
    132132                                                </div>
    133133                                           
    134                                                 <?php if(file_exists(JPATH_ADMINISTRATOR.'/components/com_jbusinessdirectory/models/shippingmethod.php') && $this->appSettings->enable_shipping) { ?>
     134                                                <?php if(file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/shippingmethod.php') && $this->appSettings->enable_shipping) { ?>
    135135                                                    <div class="price-item">
    136136                                                        <div class="price-text">
     
    188188                   
    189189
    190                                 <?php if(file_exists(JPATH_ADMINISTRATOR.'/components/com_jbusinessdirectory/models/shippingmethod.php') && $this->appSettings->enable_shipping) { ?>
     190                                <?php if(file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/shippingmethod.php') && $this->appSettings->enable_shipping) { ?>
    191191                                    <div class="order-section">
    192192                                        <div class="order-item-title">
     
    231231    function checkoutCart() {
    232232        let selectAll = true;
    233         <?php if(file_exists(JPATH_ADMINISTRATOR . '/components/com_jbusinessdirectory/models/shippingmethod.php') && $this->appSettings->enable_shipping) { ?>
     233        <?php if(file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/shippingmethod.php') && $this->appSettings->enable_shipping) { ?>
    234234        jQuery('.shipping-method').each(function () {
    235235            let val = jQuery(this).val();
     
    315315    }
    316316
    317 <?php if(file_exists(JPATH_ADMINISTRATOR.'/components/com_jbusinessdirectory/models/shippingmethod.php') && $this->appSettings->enable_shipping) { ?>
     317<?php if(file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/shippingmethod.php') && $this->appSettings->enable_shipping) { ?>
    318318    function selectShippingMethod(companyId) {
    319319        let urlSelectShippingMethod = jbdUtils.getAjaxUrl('selectShippingMethodAjax', 'cart');
  • wp-businessdirectory/trunk/site/views/jbdview.php

    r3467989 r3479072  
    346346
    347347
    348         if ($this->appSettings->enable_services == 1 && file_exists(JPATH_ADMINISTRATOR . '/components/com_jbusinessdirectory/models/companyservice.php')) {
     348        if ($this->appSettings->enable_services == 1 && file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/companyservice.php')) {
    349349       
    350350            $menuItem  = array(
     
    406406
    407407
    408             if ($this->appSettings->enable_offer_selling && file_exists(JPATH_ADMINISTRATOR . '/components/com_jbusinessdirectory/models/offerorder.php')) {
     408            if ($this->appSettings->enable_offer_selling && file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/offerorder.php')) {
    409409                $smenuItem = array(
    410410                    "title" => Text::_('COM_JBUSINESS_DIRECTORY_SUBMENU_OFFER_ORDERS'),
     
    415415                $submenu[] = $smenuItem;
    416416
    417                 if (file_exists(JPATH_ADMINISTRATOR . '/components/com_jbusinessdirectory/models/shippingmethod.php') && $this->appSettings->enable_shipping) {
     417                if (file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/shippingmethod.php') && $this->appSettings->enable_shipping) {
    418418                    $smenuItem = array(
    419419                        "title" => Text::_('COM_JBUSINESS_DIRECTORY_SUBMENU_SHIPPING_METHODS'),
     
    456456            $submenu[] = $smenuItem;
    457457
    458             if ($this->appSettings->enable_event_reservation && file_exists(JPATH_ADMINISTRATOR . '/components/com_jbusinessdirectory/models/eventticket.php')) {
     458            if ($this->appSettings->enable_event_reservation && file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/eventticket.php')) {
    459459                $smenuItem = array(
    460460                    "title" => Text::_('COM_JBUSINESS_DIRECTORY_SUBMENU_EVENT_TICKETS'),
     
    472472            }
    473473
    474             if ($this->appSettings->enable_event_appointments && file_exists(JPATH_ADMINISTRATOR . '/components/com_jbusinessdirectory/models/eventappointment.php')) {
     474            if ($this->appSettings->enable_event_appointments && file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/eventappointment.php')) {
    475475                $smenuItem = array(
    476476                    "title" => Text::_('COM_JBUSINESS_DIRECTORY_SUBMENU_EVENT_APPOINTMENTS'),
     
    717717            $menus[] = $menuItem;
    718718
    719             if (file_exists(JPATH_ADMINISTRATOR.'/components/com_jbusinessdirectory/models/conference.php')) {
     719            if (file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/conference.php')) {
    720720                $menuItem = array(
    721721                    "title" => Text::_('COM_JBUSINESS_DIRECTORY_SUBMENU_CONFERENCE_SUGGESTIONS'),
     
    774774        }
    775775
    776         if ($this->appSettings->enable_events && $this->appSettings->enable_event_reservation && file_exists(JPATH_ADMINISTRATOR . '/components/com_jbusinessdirectory/models/eventticket.php')) {
     776        if ($this->appSettings->enable_events && $this->appSettings->enable_event_reservation && file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/eventticket.php')) {
    777777           
    778778            $menuItem = array(
     
    785785        }
    786786
    787         if ($this->appSettings->enable_services == 1 && file_exists(JPATH_ADMINISTRATOR . '/components/com_jbusinessdirectory/models/companyservice.php')) {
     787        if ($this->appSettings->enable_services == 1 && file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/companyservice.php')) {
    788788            $menuItem = array(
    789789                "title" => Text::_('COM_JBUSINESS_DIRECTORY_SUBMENU_SERVICE_BOOKINGS'),
     
    795795        }
    796796
    797         if ($this->appSettings->enable_events && $this->appSettings->enable_event_appointments && file_exists(JPATH_ADMINISTRATOR . '/components/com_jbusinessdirectory/models/eventappointment.php')) {
     797        if ($this->appSettings->enable_events && $this->appSettings->enable_event_appointments && file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/eventappointment.php')) {
    798798            $menuItem = array(
    799799                "title" => Text::_('COM_JBUSINESS_DIRECTORY_SUBMENU_EVENT_APPOINTMENTS'),
     
    805805        }
    806806
    807         if ($this->appSettings->enable_offers && $this->appSettings->enable_offer_selling && file_exists(JPATH_ADMINISTRATOR . '/components/com_jbusinessdirectory/models/offerorder.php')) {
     807        if ($this->appSettings->enable_offers && $this->appSettings->enable_offer_selling && file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/offerorder.php')) {
    808808            $menuItem = array(
    809809                "title" => Text::_('COM_JBUSINESS_DIRECTORY_SUBMENU_OFFER_ORDERS'),
  • wp-businessdirectory/trunk/site/views/userdashboard/tmpl/default.php

    r3467989 r3479072  
    5757            <div class="row pt-5">
    5858                <?php if($this->actions->get('directory.access.listing.service.reservation')|| !$appSettings->front_end_acl) {
    59                     if ($this->appSettings->enable_services == 1 && file_exists(JPATH_ADMINISTRATOR . '/components/com_jbusinessdirectory/models/companyservice.php')) {
     59                    if ($this->appSettings->enable_services == 1 && file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/companyservice.php')) {
    6060                        ?>
    6161                        <div class="col-lg-4">
     
    7979               
    8080                <?php if($enableOffers && ($this->actions->get('directory.access.offers')|| !$appSettings->front_end_acl)
    81                 && $this->appSettings->enable_offers && $this->appSettings->enable_offer_selling && file_exists(JPATH_ADMINISTRATOR . '/components/com_jbusinessdirectory/models/offerorder.php')
     81                && $this->appSettings->enable_offers && $this->appSettings->enable_offer_selling && file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/offerorder.php')
    8282                ){?>
    8383                    <div class="col-lg-4">
     
    101101               
    102102                <?php if($appSettings->enable_events && ($this->actions->get('directory.access.event.tickets')|| !$appSettings->front_end_acl)
    103                 && $this->appSettings->enable_event_reservation && file_exists(JPATH_ADMINISTRATOR . '/components/com_jbusinessdirectory/models/eventticket.php')
     103                && $this->appSettings->enable_event_reservation && file_exists(JPATH_COMPONENT_ADMINISTRATOR . '/models/eventticket.php')
    104104                ){?>
    105105                    <div class="col-lg-4">
  • wp-businessdirectory/trunk/wp-businessdirectory.php

    r3467989 r3479072  
    55 * Description: Professional Business Directory
    66 * Author: CMSJunkie
    7  * Version: 4.0.0
     7 * Version: 4.0.1
    88 * Author URI: https://www.cmsjunkie.com
    99  */
     
    2727$startTime = microtime(true); // Gets current microtime as one long string
    2828
    29 define('WP_BUSINESSDIRECTORY_VERSION_NUM', '4.0.0');
     29define('WP_BUSINESSDIRECTORY_VERSION_NUM', '4.0.1');
    3030define('WP_BUSINESSDIRECTORY_VERSION_KEY', 'wpbd_plugin_version');
    31 define('WP_BUSINESSDIRECTORY_DB_VERSION_NUM', '4.0.0');
     31define('WP_BUSINESSDIRECTORY_DB_VERSION_NUM', '4.0.1');
    3232define('WP_BUSINESSDIRECTORY_DB_VERSION_KEY', 'wpbd_db_version');
    3333
Note: See TracChangeset for help on using the changeset viewer.