Plugin Directory

Changeset 2218172


Ignore:
Timestamp:
12/26/2019 11:51:42 AM (6 years ago)
Author:
sabbir1991
Message:

Deploy v2.9.29

Location:
dokan-lite
Files:
2 added
20 edited
1 copied

Legend:

Unmodified
Added
Removed
  • dokan-lite/tags/2.9.29/assets/js/dokan.js

    r2210723 r2218172  
    133133                    download_id: file,
    134134                    order_id: self.data('order-id'),
     135                    permission_id: self.data('permission-id'),
    135136                    security: self.data('nonce')
    136137                };
  • dokan-lite/tags/2.9.29/assets/js/vue-admin.js

    r2210723 r2218172  
    49514951                "name": "Cédric Lefrancq",
    49524952                "designation": "Webmaster, Unwebmaster.Be",
    4953                 "pic": dokan.urls.assetsUrl + '/images/premium/Cédric-Lefrancq.jpeg',
     4953                "pic": dokan.urls.assetsUrl + '/images/premium/cedric-lefrancq.jpeg',
    49544954                "content": "The support is very good. The plugin is perfect. Bugs are fixed very quickly. That’s a very good plugin."
    49554955            }, {
  • dokan-lite/tags/2.9.29/classes/ajax.php

    r2215040 r2218172  
    5050
    5151        add_action( 'wp_ajax_dokan_revoke_access_to_download', array( $this, 'revoke_access_to_download' ) );
    52         add_action( 'wp_ajax_nopriv_dokan_revoke_access_to_download', array( $this, 'revoke_access_to_download' ) );
    5352
    5453        add_action( 'wp_ajax_shop_url', array( $this, 'shop_url_check' ) );
     
    233232     */
    234233    function grant_access_to_download() {
     234        check_ajax_referer( 'grant-access', 'security' );
     235
     236        if (  ! current_user_can( 'dokandar' ) || ! isset( $_POST['loop'], $_POST['order_id'], $_POST['product_ids']) ) {
     237            wp_die( -1 );
     238        }
     239
    235240        global $wpdb;
    236241
    237         check_ajax_referer( 'grant-access', 'security' );
    238 
    239         $order_id       = isset( $_POST['order_id'] ) ? intval( $_POST['order_id'] ) : 0;
    240         $product_ids    = isset( $_POST['product_ids'] ) ? intval( $_POST['product_ids'] ) : 0;
    241         $loop           = isset( $_POST['loop'] ) ? intval( $_POST['loop'] ) : 0;
    242         $file_counter   = 0;
    243         $order          = wc_get_order( $order_id );
    244 
    245         if ( ! is_array( $product_ids ) ) {
    246             $product_ids = array( $product_ids );
    247         }
     242        $wpdb->hide_errors();
     243
     244        $order_id     = intval( $_POST['order_id'] );
     245        $product_ids  = array_filter( array_map( 'absint', (array) wp_unslash( $_POST['product_ids'] ) ) );
     246        $loop         = intval( $_POST['loop'] );
     247        $file_counter = 0;
     248        $order        = wc_get_order( $order_id );
    248249
    249250        foreach ( $product_ids as $product_id ) {
    250251            $product = wc_get_product( $product_id );
    251             $files   = $product->get_files();
    252 
    253             if ( ! $order->billing_email ) {
    254                 die();
     252            $files   = $product->get_downloads();
     253
     254            if ( ! $order->get_billing_email() ) {
     255                wp_die();
    255256            }
    256257
    257258            if ( $files ) {
    258259                foreach ( $files as $download_id => $file ) {
    259                     if ( $inserted_id = wc_downloadable_file_permission( $download_id, $product_id, $order ) ) {
    260 
    261                         // insert complete - get inserted data
    262                         $download = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}woocommerce_downloadable_product_permissions WHERE permission_id = %d", $inserted_id ) );
    263 
     260                    $inserted_id = wc_downloadable_file_permission( $download_id, $product_id, $order );
     261
     262                    if ( $inserted_id ) {
     263                        $download = new WC_Customer_Download( $inserted_id );
    264264                        $loop ++;
    265265                        $file_counter ++;
    266266
    267                         if ( isset( $file['name'] ) ) {
    268                             $file_count = $file['name'];
     267                        if ( $file->get_name() ) {
     268                            $file_count = $file->get_name();
    269269                        } else {
    270270                            $file_count = sprintf( __( 'File %d', 'dokan-lite' ), $file_counter );
     
    277277        }
    278278
    279         die();
     279        wp_die();
    280280    }
    281281
     
    348348    }
    349349
     350    /**
     351     * Rovoke file download access for customer
     352     *
     353     * @return void
     354     */
    350355    function revoke_access_to_download() {
    351356        check_ajax_referer( 'revoke-access', 'security' );
    352357
    353         if ( ! current_user_can( 'dokandar' ) ) {
    354             die( -1 );
    355         }
    356 
    357         global $wpdb;
    358 
    359         $download_id = isset( $_POST['download_id'] ) ? intval( $_POST['download_id'] ) : 0;
    360         $product_id  = isset( $_POST['product_id'] ) ? intval( $_POST['product_id'] ) : 0;
    361         $order_id    = isset( $_POST['order_id'] ) ? intval( $_POST['order_id'] ) : 0;
    362 
    363         $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}woocommerce_downloadable_product_permissions WHERE order_id = %d AND product_id = %d AND download_id = %s;", $order_id, $product_id, $download_id ) );
    364 
    365         do_action( 'woocommerce_ajax_revoke_access_to_product_download', $download_id, $product_id, $order_id );
    366 
    367         die();
     358        if ( ! current_user_can( 'dokandar' ) || ! isset( $_POST['download_id'], $_POST['product_id'], $_POST['order_id'], $_POST['permission_id'] ) ) {
     359            wp_die( -1 );
     360        }
     361
     362        $download_id   = intval( wp_unslash( $_POST['download_id'] ) );
     363        $product_id    = intval( $_POST['product_id'] );
     364        $order_id      = intval( $_POST['order_id'] );
     365        $permission_id = absint( $_POST['permission_id'] );
     366
     367        $data_store = WC_Data_Store::load( 'customer-download' );
     368        $data_store->delete_by_id( $permission_id );
     369
     370        do_action( 'woocommerce_ajax_revoke_access_to_product_download', $download_id, $product_id, $order_id, $permission_id );
     371        wp_die();
    368372    }
    369373
  • dokan-lite/tags/2.9.29/dokan.php

    r2215040 r2218172  
    44Plugin URI: https://wordpress.org/plugins/dokan-lite/
    55Description: An e-commerce marketplace plugin for WordPress. Powered by WooCommerce and weDevs.
    6 Version: 2.9.28
     6Version: 2.9.29
    77Author: weDevs
    88Author URI: https://wedevs.com/
     
    7979     * @var string
    8080     */
    81     public $version = '2.9.28';
     81    public $version = '2.9.29';
    8282
    8383    /**
     
    545545        }
    546546
     547        // If vendor found, don't show the setup wizard as admin already ran the `setup wizard`
     548        // without the `dokan_admin_setup_wizard_ready` option.
     549        $vendor_count = dokan_get_seller_status_count();
     550
     551        if ( ! empty( $vendor_count['active'] ) ) {
     552            return update_option( 'dokan_admin_setup_wizard_ready', true );
     553        }
     554
    547555        require_once DOKAN_INC_DIR . '/functions.php';
    548556
  • dokan-lite/tags/2.9.29/includes/template-tags.php

    r2105404 r2218172  
    475475
    476476    if ( $hamburger_menu ) {
    477         $menu .= '<div id="dokan-navigation" area-label="Menu">';
     477        $menu .= '<div id="dokan-navigation" aria-label="Menu">';
    478478        $menu .= '<label id="mobile-menu-icon" for="toggle-mobile-menu" aria-label="Menu">&#9776;</label>';
    479479        $menu .= '<input id="toggle-mobile-menu" type="checkbox" />';
  • dokan-lite/tags/2.9.29/languages/dokan-lite.pot

    r2215040 r2218172  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Dokan 2.9.28\n"
     5"Project-Id-Version: Dokan 2.9.29\n"
    66"Report-Msgid-Bugs-To: https://wedevs.com/contact/\n"
    7 "POT-Creation-Date: 2019-12-19 11:14:59+00:00\n"
     7"POT-Creation-Date: 2019-12-26 11:24:21+00:00\n"
    88"MIME-Version: 1.0\n"
    99"Content-Type: text/plain; charset=utf-8\n"
     
    4040msgstr ""
    4141
    42 #: classes/admin-user-profile.php:35 classes/ajax.php:152
     42#: classes/admin-user-profile.php:35 classes/ajax.php:151
    4343#: includes/class-assets.php:441 src/admin/pages/VendorAccountFields.vue:279
    4444#: src/admin/pages/VendorAccountFields.vue:311
     
    213213msgstr ""
    214214
    215 #: classes/admin-withdraw.php:40 classes/ajax.php:84
     215#: classes/admin-withdraw.php:40 classes/ajax.php:83
    216216#: classes/template-withdraw.php:210 classes/template-withdraw.php:243
    217217msgid "You have no permission to do this action"
     
    224224msgstr ""
    225225
    226 #: classes/ajax.php:106
     226#: classes/ajax.php:105
    227227msgid "Something wrong, please try again later"
    228228msgstr ""
    229229
    230 #: classes/ajax.php:121 classes/template-settings.php:223
     230#: classes/ajax.php:120 classes/template-settings.php:223
    231231#: classes/template-settings.php:237 classes/template-settings.php:249
    232232#: classes/template-settings.php:261 classes/template-settings.php:298
     
    237237msgstr ""
    238238
    239 #: classes/ajax.php:169 classes/ajax.php:204
     239#: classes/ajax.php:168 classes/ajax.php:203
    240240msgid "You do not have sufficient permissions to access this page."
    241241msgstr ""
    242242
    243 #: classes/ajax.php:173 classes/ajax.php:208
     243#: classes/ajax.php:172 classes/ajax.php:207
    244244msgid "You have taken too long. Please go back and retry."
    245245msgstr ""
    246246
    247 #: classes/ajax.php:183 classes/ajax.php:218
     247#: classes/ajax.php:182 classes/ajax.php:217
    248248msgid "You do not have permission to change this order"
    249249msgstr ""
     
    269269msgstr ""
    270270
    271 #: classes/ajax.php:401 templates/orders/details.php:288
     271#: classes/ajax.php:405 templates/orders/details.php:288
    272272msgid "Delete note"
    273273msgstr ""
    274274
    275 #: classes/ajax.php:432
     275#: classes/ajax.php:436
    276276msgid "Shipping provider: "
    277277msgstr ""
    278278
    279 #: classes/ajax.php:432
     279#: classes/ajax.php:436
    280280msgid "Shipping number: "
    281281msgstr ""
    282282
    283 #: classes/ajax.php:432
     283#: classes/ajax.php:436
    284284msgid "Shipped date: "
    285285msgstr ""
    286286
    287 #: classes/ajax.php:471 includes/woo-views/html-product-download.php:14
     287#: classes/ajax.php:475 includes/woo-views/html-product-download.php:14
    288288msgid "Delete"
    289289msgstr ""
    290290
    291 #: classes/ajax.php:516
     291#: classes/ajax.php:520
    292292msgid "Error: Nonce verification failed"
    293293msgstr ""
    294294
    295 #: classes/ajax.php:603
     295#: classes/ajax.php:607
    296296msgid "Image could not be processed. Please go back and try again."
    297297msgstr ""
    298298
    299 #: classes/ajax.php:724
     299#: classes/ajax.php:728
    300300#. translators: 1: user display name 2: user ID 3: user email
    301301msgid "%1$s (#%2$s &ndash; %3$s)"
    302302msgstr ""
    303303
    304 #: classes/ajax.php:870
     304#: classes/ajax.php:874
    305305msgid "Invalid username or password."
    306306msgstr ""
    307307
    308 #: classes/ajax.php:879
     308#: classes/ajax.php:883
    309309msgid "Wrong username or password."
    310310msgstr ""
    311311
    312 #: classes/ajax.php:906
     312#: classes/ajax.php:910
    313313msgid "User logged in successfully."
    314314msgstr ""
     
    448448#: includes/admin/setup-wizard.php:521 includes/admin/setup-wizard.php:573
    449449#: templates/admin-setup-wizard/step-selling.php:53
    450 #: templates/admin-setup-wizard/step-store.php:76
     450#: templates/admin-setup-wizard/step-store.php:77
    451451msgid "Continue"
    452452msgstr ""
     
    455455#: includes/admin/setup-wizard.php:522
    456456#: templates/admin-setup-wizard/step-selling.php:54
    457 #: templates/admin-setup-wizard/step-store.php:77
     457#: templates/admin-setup-wizard/step-store.php:78
    458458msgid "Skip this step"
    459459msgstr ""
     
    41574157msgstr ""
    41584158
    4159 #: includes/product-functions.php:318 lib/appsero/Insights.php:749
     4159#: includes/product-functions.php:318 lib/appsero/Insights.php:764
    41604160#: templates/my-orders.php:83 templates/orders/details.php:199
    41614161#: templates/products/new-product-single.php:214
     
    45364536msgstr ""
    45374537
    4538 #: lib/appsero/Insights.php:358 vendor/appsero/client/src/Insights.php:369
     4538#: lib/appsero/Insights.php:369 vendor/appsero/client/src/Insights.php:369
    45394539msgid ""
    45404540"Want to help make <strong>%1$s</strong> even more awesome? Allow %1$s to "
     
    45424542msgstr ""
    45434543
    4544 #: lib/appsero/Insights.php:363 vendor/appsero/client/src/Insights.php:374
     4544#: lib/appsero/Insights.php:374 vendor/appsero/client/src/Insights.php:374
    45454545msgid "what we collect"
    45464546msgstr ""
    45474547
    4548 #: lib/appsero/Insights.php:369 templates/products/inventory.php:55
     4548#: lib/appsero/Insights.php:381 templates/products/inventory.php:55
    45494549#: vendor/appsero/client/src/Insights.php:381
    45504550msgid "Allow"
    45514551msgstr ""
    45524552
    4553 #: lib/appsero/Insights.php:370 vendor/appsero/client/src/Insights.php:382
     4553#: lib/appsero/Insights.php:382 vendor/appsero/client/src/Insights.php:382
    45544554msgid "No thanks"
    45554555msgstr ""
    45564556
    4557 #: lib/appsero/Insights.php:569
    4558 msgid "Once Weekly"
    4559 msgstr ""
    4560 
    4561 #: lib/appsero/Insights.php:733 vendor/appsero/client/src/Insights.php:747
     4557#: lib/appsero/Insights.php:747 vendor/appsero/client/src/Insights.php:747
    45624558msgid "If you have a moment, please let us know why you are deactivating:"
    45634559msgstr ""
    45644560
    4565 #: lib/appsero/Insights.php:747 vendor/appsero/client/src/Insights.php:762
     4561#: lib/appsero/Insights.php:762 vendor/appsero/client/src/Insights.php:762
    45664562msgid "I rather wouldn't say"
    45674563msgstr ""
    45684564
    4569 #: lib/appsero/Insights.php:748 vendor/appsero/client/src/Insights.php:763
     4565#: lib/appsero/Insights.php:763 vendor/appsero/client/src/Insights.php:763
    45704566msgid "Submit & Deactivate"
    45714567msgstr ""
     
    51145110#: templates/admin-setup-wizard/step-store.php:66
    51155111msgid ""
    5116 "Want to help make Dokan even more awesome? Allow weDevs to collect "
    5117 "non-sensitive diagnostic data and usage information."
     5112"Want to help make Dokan even more awesome? Allow Dokan Multivendor "
     5113"Marketplace to collect non-sensitive diagnostic data and usage information"
    51185114msgstr ""
    51195115
     
    51285124"plugins, Site name and url, Your name and email address. No sensitive data "
    51295125"is tracked."
     5126msgstr ""
     5127
     5128#: templates/admin-setup-wizard/step-store.php:71
     5129msgid ""
     5130"We are using %1$s to collect your data. <a href=\"%2$s\" "
     5131"target=\"_blank\">Learn more</a> about how %1$s collects and handle your "
     5132"data."
    51305133msgstr ""
    51315134
     
    57035706msgstr ""
    57045707
    5705 #: templates/orders/order-download-permission-html.php:10
     5708#: templates/orders/order-download-permission-html.php:17
    57065709msgid "Revoke Access"
    57075710msgstr ""
    57085711
    5709 #: templates/orders/order-download-permission-html.php:20
     5712#: templates/orders/order-download-permission-html.php:28
    57105713msgid "Downloaded"
    57115714msgstr ""
    57125715
    5713 #: templates/orders/order-download-permission-html.php:22
     5716#: templates/orders/order-download-permission-html.php:30
    57145717msgid "%s time"
    57155718msgid_plural "%s times"
     
    57175720msgstr[1] ""
    57185721
    5719 #: templates/orders/order-download-permission-html.php:25
     5722#: templates/orders/order-download-permission-html.php:33
    57205723msgid "Downloads Remaining"
    57215724msgstr ""
    57225725
    5723 #: templates/orders/order-download-permission-html.php:28
     5726#: templates/orders/order-download-permission-html.php:36
    57245727msgid "Unlimited"
    57255728msgstr ""
    57265729
    5727 #: templates/orders/order-download-permission-html.php:31
     5730#: templates/orders/order-download-permission-html.php:39
    57285731msgid "Access Expires"
    57295732msgstr ""
    57305733
    5731 #: templates/orders/order-download-permission-html.php:32
     5734#: templates/orders/order-download-permission-html.php:40
    57325735msgid "Never"
    57335736msgstr ""
  • dokan-lite/tags/2.9.29/readme.txt

    r2215040 r2218172  
    88WC tested up to: 3.8.1
    99Requires PHP: 5.6
    10 Stable tag: 2.9.28
     10Stable tag: 2.9.29
    1111License: GPLv2 or later
    1212License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    292292== Changelog ==
    293293
     294= v2.9.29 (December 26, 2019) =
     295
     296 - **Fix:** Don't show the admin setup wizard who ran the setup wizard before
     297 - **Fix:** Remove non-ascii characters from some file names
     298 - **Fix:** Dokan dashboard hamburger menu is not working fixed
     299 - **Fix:** Downloadable product grunt and revoke access issue is fixed
     300 - **Tweak:** Added privacy policy info in setup wizard for admin
     301
    294302= v2.9.28 (December 19, 2019) =
    295303
  • dokan-lite/tags/2.9.29/templates/admin-setup-wizard/step-store.php

    r2210723 r2218172  
    5858
    5959            <td>
    60                 <input type="checkbox" name="share_essentials" id="share_essentials" class="switch-input" checked>
     60                <input type="checkbox" name="share_essentials" id="share_essentials" class="switch-input">
    6161                <label for="share_essentials" class="switch-label">
    6262                    <span class="toggle--on"><?php esc_html_e( 'On', 'dokan-lite' ); ?></span>
     
    6464                </label>
    6565                <span class="description">
    66                     <?php esc_html_e( 'Want to help make Dokan even more awesome? Allow weDevs to collect non-sensitive diagnostic data and usage information.', 'dokan-lite' ); ?>
     66                    <?php esc_html_e( 'Want to help make Dokan even more awesome? Allow Dokan Multivendor Marketplace to collect non-sensitive diagnostic data and usage information', 'dokan-lite' ); ?>
    6767                    <?php printf( '<a class="insights-data-we-collect" href="#">%s</a>', esc_html__( 'What we collect', 'dokan-lite' ) ); ?>
    6868                </span>
    6969                <p id="collection-info" class="description" style="display:none;">
    7070                    <?php esc_html_e( 'Server environment details (php, mysql, server, WordPress versions), Number of users in your site, Site language, Number of active and inactive plugins, Site name and url, Your name and email address. No sensitive data is tracked.', 'dokan-lite' ); ?>
     71                    <?php printf( __( 'We are using %1$s to collect your data. <a href="%2$s" target="_blank">Learn more</a> about how %1$s collects and handle your data.', 'dokan-lite' ), '<a href="https://appsero.com" target="_blank">Appsero</a>', 'https://appsero.com/privacy-policy/' ); ?>
    7172                </p>
    7273            </td>
  • dokan-lite/tags/2.9.29/templates/global/dashboard-nav.php

    r2215040 r2218172  
    55
    66<div class="dokan-dash-sidebar">
    7     <?php echo wp_kses_post( dokan_dashboard_nav( $active_menu ) ); ?>
     7    <?php
     8        global $allowedposttags;
     9
     10        // These are required for the hamburger menu.
     11        if ( is_array( $allowedposttags ) ) {
     12            $allowedposttags['input'] = [
     13                'id'      => [],
     14                'type'    => [],
     15                'checked' => []
     16            ];
     17        }
     18
     19        echo wp_kses( dokan_dashboard_nav( $active_menu ), $allowedposttags );
     20    ?>
    821</div>
  • dokan-lite/tags/2.9.29/templates/orders/order-download-permission-html.php

    r2215040 r2218172  
    88        </a>
    99
    10         <button rel="<?php echo esc_attr( absint( $download->product_id ) ) . ',' . esc_attr( $download->download_id ); ?>" class="revoke_access btn btn-danger btn-sm pull-right" data-order-id="<?php echo esc_attr( $download->order_id ); ?>" data-nonce="<?php echo esc_attr( wp_create_nonce( 'revoke-access' ) ); ?>"><?php esc_html_e( 'Revoke Access', 'dokan-lite' ); ?></button>
     10        <button
     11            rel="<?php echo esc_attr( absint( $download->product_id ) ) . ',' . esc_attr( $download->download_id ); ?>"
     12            class="revoke_access btn btn-danger btn-sm pull-right"
     13            data-order-id="<?php echo esc_attr( $download->order_id ); ?>"
     14            data-permission-id="<?php echo esc_attr( $download->permission_id ); ?>"
     15            data-nonce="<?php echo esc_attr( wp_create_nonce( 'revoke-access' ) ); ?>"
     16        >
     17            <?php esc_html_e( 'Revoke Access', 'dokan-lite' ); ?>
     18        </button>
    1119    </div>
    1220
  • dokan-lite/trunk/assets/js/dokan.js

    r2210723 r2218172  
    133133                    download_id: file,
    134134                    order_id: self.data('order-id'),
     135                    permission_id: self.data('permission-id'),
    135136                    security: self.data('nonce')
    136137                };
  • dokan-lite/trunk/assets/js/vue-admin.js

    r2210723 r2218172  
    49514951                "name": "Cédric Lefrancq",
    49524952                "designation": "Webmaster, Unwebmaster.Be",
    4953                 "pic": dokan.urls.assetsUrl + '/images/premium/Cédric-Lefrancq.jpeg',
     4953                "pic": dokan.urls.assetsUrl + '/images/premium/cedric-lefrancq.jpeg',
    49544954                "content": "The support is very good. The plugin is perfect. Bugs are fixed very quickly. That’s a very good plugin."
    49554955            }, {
  • dokan-lite/trunk/classes/ajax.php

    r2215040 r2218172  
    5050
    5151        add_action( 'wp_ajax_dokan_revoke_access_to_download', array( $this, 'revoke_access_to_download' ) );
    52         add_action( 'wp_ajax_nopriv_dokan_revoke_access_to_download', array( $this, 'revoke_access_to_download' ) );
    5352
    5453        add_action( 'wp_ajax_shop_url', array( $this, 'shop_url_check' ) );
     
    233232     */
    234233    function grant_access_to_download() {
     234        check_ajax_referer( 'grant-access', 'security' );
     235
     236        if (  ! current_user_can( 'dokandar' ) || ! isset( $_POST['loop'], $_POST['order_id'], $_POST['product_ids']) ) {
     237            wp_die( -1 );
     238        }
     239
    235240        global $wpdb;
    236241
    237         check_ajax_referer( 'grant-access', 'security' );
    238 
    239         $order_id       = isset( $_POST['order_id'] ) ? intval( $_POST['order_id'] ) : 0;
    240         $product_ids    = isset( $_POST['product_ids'] ) ? intval( $_POST['product_ids'] ) : 0;
    241         $loop           = isset( $_POST['loop'] ) ? intval( $_POST['loop'] ) : 0;
    242         $file_counter   = 0;
    243         $order          = wc_get_order( $order_id );
    244 
    245         if ( ! is_array( $product_ids ) ) {
    246             $product_ids = array( $product_ids );
    247         }
     242        $wpdb->hide_errors();
     243
     244        $order_id     = intval( $_POST['order_id'] );
     245        $product_ids  = array_filter( array_map( 'absint', (array) wp_unslash( $_POST['product_ids'] ) ) );
     246        $loop         = intval( $_POST['loop'] );
     247        $file_counter = 0;
     248        $order        = wc_get_order( $order_id );
    248249
    249250        foreach ( $product_ids as $product_id ) {
    250251            $product = wc_get_product( $product_id );
    251             $files   = $product->get_files();
    252 
    253             if ( ! $order->billing_email ) {
    254                 die();
     252            $files   = $product->get_downloads();
     253
     254            if ( ! $order->get_billing_email() ) {
     255                wp_die();
    255256            }
    256257
    257258            if ( $files ) {
    258259                foreach ( $files as $download_id => $file ) {
    259                     if ( $inserted_id = wc_downloadable_file_permission( $download_id, $product_id, $order ) ) {
    260 
    261                         // insert complete - get inserted data
    262                         $download = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}woocommerce_downloadable_product_permissions WHERE permission_id = %d", $inserted_id ) );
    263 
     260                    $inserted_id = wc_downloadable_file_permission( $download_id, $product_id, $order );
     261
     262                    if ( $inserted_id ) {
     263                        $download = new WC_Customer_Download( $inserted_id );
    264264                        $loop ++;
    265265                        $file_counter ++;
    266266
    267                         if ( isset( $file['name'] ) ) {
    268                             $file_count = $file['name'];
     267                        if ( $file->get_name() ) {
     268                            $file_count = $file->get_name();
    269269                        } else {
    270270                            $file_count = sprintf( __( 'File %d', 'dokan-lite' ), $file_counter );
     
    277277        }
    278278
    279         die();
     279        wp_die();
    280280    }
    281281
     
    348348    }
    349349
     350    /**
     351     * Rovoke file download access for customer
     352     *
     353     * @return void
     354     */
    350355    function revoke_access_to_download() {
    351356        check_ajax_referer( 'revoke-access', 'security' );
    352357
    353         if ( ! current_user_can( 'dokandar' ) ) {
    354             die( -1 );
    355         }
    356 
    357         global $wpdb;
    358 
    359         $download_id = isset( $_POST['download_id'] ) ? intval( $_POST['download_id'] ) : 0;
    360         $product_id  = isset( $_POST['product_id'] ) ? intval( $_POST['product_id'] ) : 0;
    361         $order_id    = isset( $_POST['order_id'] ) ? intval( $_POST['order_id'] ) : 0;
    362 
    363         $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}woocommerce_downloadable_product_permissions WHERE order_id = %d AND product_id = %d AND download_id = %s;", $order_id, $product_id, $download_id ) );
    364 
    365         do_action( 'woocommerce_ajax_revoke_access_to_product_download', $download_id, $product_id, $order_id );
    366 
    367         die();
     358        if ( ! current_user_can( 'dokandar' ) || ! isset( $_POST['download_id'], $_POST['product_id'], $_POST['order_id'], $_POST['permission_id'] ) ) {
     359            wp_die( -1 );
     360        }
     361
     362        $download_id   = intval( wp_unslash( $_POST['download_id'] ) );
     363        $product_id    = intval( $_POST['product_id'] );
     364        $order_id      = intval( $_POST['order_id'] );
     365        $permission_id = absint( $_POST['permission_id'] );
     366
     367        $data_store = WC_Data_Store::load( 'customer-download' );
     368        $data_store->delete_by_id( $permission_id );
     369
     370        do_action( 'woocommerce_ajax_revoke_access_to_product_download', $download_id, $product_id, $order_id, $permission_id );
     371        wp_die();
    368372    }
    369373
  • dokan-lite/trunk/dokan.php

    r2215040 r2218172  
    44Plugin URI: https://wordpress.org/plugins/dokan-lite/
    55Description: An e-commerce marketplace plugin for WordPress. Powered by WooCommerce and weDevs.
    6 Version: 2.9.28
     6Version: 2.9.29
    77Author: weDevs
    88Author URI: https://wedevs.com/
     
    7979     * @var string
    8080     */
    81     public $version = '2.9.28';
     81    public $version = '2.9.29';
    8282
    8383    /**
     
    545545        }
    546546
     547        // If vendor found, don't show the setup wizard as admin already ran the `setup wizard`
     548        // without the `dokan_admin_setup_wizard_ready` option.
     549        $vendor_count = dokan_get_seller_status_count();
     550
     551        if ( ! empty( $vendor_count['active'] ) ) {
     552            return update_option( 'dokan_admin_setup_wizard_ready', true );
     553        }
     554
    547555        require_once DOKAN_INC_DIR . '/functions.php';
    548556
  • dokan-lite/trunk/includes/template-tags.php

    r2105404 r2218172  
    475475
    476476    if ( $hamburger_menu ) {
    477         $menu .= '<div id="dokan-navigation" area-label="Menu">';
     477        $menu .= '<div id="dokan-navigation" aria-label="Menu">';
    478478        $menu .= '<label id="mobile-menu-icon" for="toggle-mobile-menu" aria-label="Menu">&#9776;</label>';
    479479        $menu .= '<input id="toggle-mobile-menu" type="checkbox" />';
  • dokan-lite/trunk/languages/dokan-lite.pot

    r2215040 r2218172  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Dokan 2.9.28\n"
     5"Project-Id-Version: Dokan 2.9.29\n"
    66"Report-Msgid-Bugs-To: https://wedevs.com/contact/\n"
    7 "POT-Creation-Date: 2019-12-19 11:14:59+00:00\n"
     7"POT-Creation-Date: 2019-12-26 11:24:21+00:00\n"
    88"MIME-Version: 1.0\n"
    99"Content-Type: text/plain; charset=utf-8\n"
     
    4040msgstr ""
    4141
    42 #: classes/admin-user-profile.php:35 classes/ajax.php:152
     42#: classes/admin-user-profile.php:35 classes/ajax.php:151
    4343#: includes/class-assets.php:441 src/admin/pages/VendorAccountFields.vue:279
    4444#: src/admin/pages/VendorAccountFields.vue:311
     
    213213msgstr ""
    214214
    215 #: classes/admin-withdraw.php:40 classes/ajax.php:84
     215#: classes/admin-withdraw.php:40 classes/ajax.php:83
    216216#: classes/template-withdraw.php:210 classes/template-withdraw.php:243
    217217msgid "You have no permission to do this action"
     
    224224msgstr ""
    225225
    226 #: classes/ajax.php:106
     226#: classes/ajax.php:105
    227227msgid "Something wrong, please try again later"
    228228msgstr ""
    229229
    230 #: classes/ajax.php:121 classes/template-settings.php:223
     230#: classes/ajax.php:120 classes/template-settings.php:223
    231231#: classes/template-settings.php:237 classes/template-settings.php:249
    232232#: classes/template-settings.php:261 classes/template-settings.php:298
     
    237237msgstr ""
    238238
    239 #: classes/ajax.php:169 classes/ajax.php:204
     239#: classes/ajax.php:168 classes/ajax.php:203
    240240msgid "You do not have sufficient permissions to access this page."
    241241msgstr ""
    242242
    243 #: classes/ajax.php:173 classes/ajax.php:208
     243#: classes/ajax.php:172 classes/ajax.php:207
    244244msgid "You have taken too long. Please go back and retry."
    245245msgstr ""
    246246
    247 #: classes/ajax.php:183 classes/ajax.php:218
     247#: classes/ajax.php:182 classes/ajax.php:217
    248248msgid "You do not have permission to change this order"
    249249msgstr ""
     
    269269msgstr ""
    270270
    271 #: classes/ajax.php:401 templates/orders/details.php:288
     271#: classes/ajax.php:405 templates/orders/details.php:288
    272272msgid "Delete note"
    273273msgstr ""
    274274
    275 #: classes/ajax.php:432
     275#: classes/ajax.php:436
    276276msgid "Shipping provider: "
    277277msgstr ""
    278278
    279 #: classes/ajax.php:432
     279#: classes/ajax.php:436
    280280msgid "Shipping number: "
    281281msgstr ""
    282282
    283 #: classes/ajax.php:432
     283#: classes/ajax.php:436
    284284msgid "Shipped date: "
    285285msgstr ""
    286286
    287 #: classes/ajax.php:471 includes/woo-views/html-product-download.php:14
     287#: classes/ajax.php:475 includes/woo-views/html-product-download.php:14
    288288msgid "Delete"
    289289msgstr ""
    290290
    291 #: classes/ajax.php:516
     291#: classes/ajax.php:520
    292292msgid "Error: Nonce verification failed"
    293293msgstr ""
    294294
    295 #: classes/ajax.php:603
     295#: classes/ajax.php:607
    296296msgid "Image could not be processed. Please go back and try again."
    297297msgstr ""
    298298
    299 #: classes/ajax.php:724
     299#: classes/ajax.php:728
    300300#. translators: 1: user display name 2: user ID 3: user email
    301301msgid "%1$s (#%2$s &ndash; %3$s)"
    302302msgstr ""
    303303
    304 #: classes/ajax.php:870
     304#: classes/ajax.php:874
    305305msgid "Invalid username or password."
    306306msgstr ""
    307307
    308 #: classes/ajax.php:879
     308#: classes/ajax.php:883
    309309msgid "Wrong username or password."
    310310msgstr ""
    311311
    312 #: classes/ajax.php:906
     312#: classes/ajax.php:910
    313313msgid "User logged in successfully."
    314314msgstr ""
     
    448448#: includes/admin/setup-wizard.php:521 includes/admin/setup-wizard.php:573
    449449#: templates/admin-setup-wizard/step-selling.php:53
    450 #: templates/admin-setup-wizard/step-store.php:76
     450#: templates/admin-setup-wizard/step-store.php:77
    451451msgid "Continue"
    452452msgstr ""
     
    455455#: includes/admin/setup-wizard.php:522
    456456#: templates/admin-setup-wizard/step-selling.php:54
    457 #: templates/admin-setup-wizard/step-store.php:77
     457#: templates/admin-setup-wizard/step-store.php:78
    458458msgid "Skip this step"
    459459msgstr ""
     
    41574157msgstr ""
    41584158
    4159 #: includes/product-functions.php:318 lib/appsero/Insights.php:749
     4159#: includes/product-functions.php:318 lib/appsero/Insights.php:764
    41604160#: templates/my-orders.php:83 templates/orders/details.php:199
    41614161#: templates/products/new-product-single.php:214
     
    45364536msgstr ""
    45374537
    4538 #: lib/appsero/Insights.php:358 vendor/appsero/client/src/Insights.php:369
     4538#: lib/appsero/Insights.php:369 vendor/appsero/client/src/Insights.php:369
    45394539msgid ""
    45404540"Want to help make <strong>%1$s</strong> even more awesome? Allow %1$s to "
     
    45424542msgstr ""
    45434543
    4544 #: lib/appsero/Insights.php:363 vendor/appsero/client/src/Insights.php:374
     4544#: lib/appsero/Insights.php:374 vendor/appsero/client/src/Insights.php:374
    45454545msgid "what we collect"
    45464546msgstr ""
    45474547
    4548 #: lib/appsero/Insights.php:369 templates/products/inventory.php:55
     4548#: lib/appsero/Insights.php:381 templates/products/inventory.php:55
    45494549#: vendor/appsero/client/src/Insights.php:381
    45504550msgid "Allow"
    45514551msgstr ""
    45524552
    4553 #: lib/appsero/Insights.php:370 vendor/appsero/client/src/Insights.php:382
     4553#: lib/appsero/Insights.php:382 vendor/appsero/client/src/Insights.php:382
    45544554msgid "No thanks"
    45554555msgstr ""
    45564556
    4557 #: lib/appsero/Insights.php:569
    4558 msgid "Once Weekly"
    4559 msgstr ""
    4560 
    4561 #: lib/appsero/Insights.php:733 vendor/appsero/client/src/Insights.php:747
     4557#: lib/appsero/Insights.php:747 vendor/appsero/client/src/Insights.php:747
    45624558msgid "If you have a moment, please let us know why you are deactivating:"
    45634559msgstr ""
    45644560
    4565 #: lib/appsero/Insights.php:747 vendor/appsero/client/src/Insights.php:762
     4561#: lib/appsero/Insights.php:762 vendor/appsero/client/src/Insights.php:762
    45664562msgid "I rather wouldn't say"
    45674563msgstr ""
    45684564
    4569 #: lib/appsero/Insights.php:748 vendor/appsero/client/src/Insights.php:763
     4565#: lib/appsero/Insights.php:763 vendor/appsero/client/src/Insights.php:763
    45704566msgid "Submit & Deactivate"
    45714567msgstr ""
     
    51145110#: templates/admin-setup-wizard/step-store.php:66
    51155111msgid ""
    5116 "Want to help make Dokan even more awesome? Allow weDevs to collect "
    5117 "non-sensitive diagnostic data and usage information."
     5112"Want to help make Dokan even more awesome? Allow Dokan Multivendor "
     5113"Marketplace to collect non-sensitive diagnostic data and usage information"
    51185114msgstr ""
    51195115
     
    51285124"plugins, Site name and url, Your name and email address. No sensitive data "
    51295125"is tracked."
     5126msgstr ""
     5127
     5128#: templates/admin-setup-wizard/step-store.php:71
     5129msgid ""
     5130"We are using %1$s to collect your data. <a href=\"%2$s\" "
     5131"target=\"_blank\">Learn more</a> about how %1$s collects and handle your "
     5132"data."
    51305133msgstr ""
    51315134
     
    57035706msgstr ""
    57045707
    5705 #: templates/orders/order-download-permission-html.php:10
     5708#: templates/orders/order-download-permission-html.php:17
    57065709msgid "Revoke Access"
    57075710msgstr ""
    57085711
    5709 #: templates/orders/order-download-permission-html.php:20
     5712#: templates/orders/order-download-permission-html.php:28
    57105713msgid "Downloaded"
    57115714msgstr ""
    57125715
    5713 #: templates/orders/order-download-permission-html.php:22
     5716#: templates/orders/order-download-permission-html.php:30
    57145717msgid "%s time"
    57155718msgid_plural "%s times"
     
    57175720msgstr[1] ""
    57185721
    5719 #: templates/orders/order-download-permission-html.php:25
     5722#: templates/orders/order-download-permission-html.php:33
    57205723msgid "Downloads Remaining"
    57215724msgstr ""
    57225725
    5723 #: templates/orders/order-download-permission-html.php:28
     5726#: templates/orders/order-download-permission-html.php:36
    57245727msgid "Unlimited"
    57255728msgstr ""
    57265729
    5727 #: templates/orders/order-download-permission-html.php:31
     5730#: templates/orders/order-download-permission-html.php:39
    57285731msgid "Access Expires"
    57295732msgstr ""
    57305733
    5731 #: templates/orders/order-download-permission-html.php:32
     5734#: templates/orders/order-download-permission-html.php:40
    57325735msgid "Never"
    57335736msgstr ""
  • dokan-lite/trunk/readme.txt

    r2215040 r2218172  
    88WC tested up to: 3.8.1
    99Requires PHP: 5.6
    10 Stable tag: 2.9.28
     10Stable tag: 2.9.29
    1111License: GPLv2 or later
    1212License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    292292== Changelog ==
    293293
     294= v2.9.29 (December 26, 2019) =
     295
     296 - **Fix:** Don't show the admin setup wizard who ran the setup wizard before
     297 - **Fix:** Remove non-ascii characters from some file names
     298 - **Fix:** Dokan dashboard hamburger menu is not working fixed
     299 - **Fix:** Downloadable product grunt and revoke access issue is fixed
     300 - **Tweak:** Added privacy policy info in setup wizard for admin
     301
    294302= v2.9.28 (December 19, 2019) =
    295303
  • dokan-lite/trunk/templates/admin-setup-wizard/step-store.php

    r2210723 r2218172  
    5858
    5959            <td>
    60                 <input type="checkbox" name="share_essentials" id="share_essentials" class="switch-input" checked>
     60                <input type="checkbox" name="share_essentials" id="share_essentials" class="switch-input">
    6161                <label for="share_essentials" class="switch-label">
    6262                    <span class="toggle--on"><?php esc_html_e( 'On', 'dokan-lite' ); ?></span>
     
    6464                </label>
    6565                <span class="description">
    66                     <?php esc_html_e( 'Want to help make Dokan even more awesome? Allow weDevs to collect non-sensitive diagnostic data and usage information.', 'dokan-lite' ); ?>
     66                    <?php esc_html_e( 'Want to help make Dokan even more awesome? Allow Dokan Multivendor Marketplace to collect non-sensitive diagnostic data and usage information', 'dokan-lite' ); ?>
    6767                    <?php printf( '<a class="insights-data-we-collect" href="#">%s</a>', esc_html__( 'What we collect', 'dokan-lite' ) ); ?>
    6868                </span>
    6969                <p id="collection-info" class="description" style="display:none;">
    7070                    <?php esc_html_e( 'Server environment details (php, mysql, server, WordPress versions), Number of users in your site, Site language, Number of active and inactive plugins, Site name and url, Your name and email address. No sensitive data is tracked.', 'dokan-lite' ); ?>
     71                    <?php printf( __( 'We are using %1$s to collect your data. <a href="%2$s" target="_blank">Learn more</a> about how %1$s collects and handle your data.', 'dokan-lite' ), '<a href="https://appsero.com" target="_blank">Appsero</a>', 'https://appsero.com/privacy-policy/' ); ?>
    7172                </p>
    7273            </td>
  • dokan-lite/trunk/templates/global/dashboard-nav.php

    r2215040 r2218172  
    55
    66<div class="dokan-dash-sidebar">
    7     <?php echo wp_kses_post( dokan_dashboard_nav( $active_menu ) ); ?>
     7    <?php
     8        global $allowedposttags;
     9
     10        // These are required for the hamburger menu.
     11        if ( is_array( $allowedposttags ) ) {
     12            $allowedposttags['input'] = [
     13                'id'      => [],
     14                'type'    => [],
     15                'checked' => []
     16            ];
     17        }
     18
     19        echo wp_kses( dokan_dashboard_nav( $active_menu ), $allowedposttags );
     20    ?>
    821</div>
  • dokan-lite/trunk/templates/orders/order-download-permission-html.php

    r2215040 r2218172  
    88        </a>
    99
    10         <button rel="<?php echo esc_attr( absint( $download->product_id ) ) . ',' . esc_attr( $download->download_id ); ?>" class="revoke_access btn btn-danger btn-sm pull-right" data-order-id="<?php echo esc_attr( $download->order_id ); ?>" data-nonce="<?php echo esc_attr( wp_create_nonce( 'revoke-access' ) ); ?>"><?php esc_html_e( 'Revoke Access', 'dokan-lite' ); ?></button>
     10        <button
     11            rel="<?php echo esc_attr( absint( $download->product_id ) ) . ',' . esc_attr( $download->download_id ); ?>"
     12            class="revoke_access btn btn-danger btn-sm pull-right"
     13            data-order-id="<?php echo esc_attr( $download->order_id ); ?>"
     14            data-permission-id="<?php echo esc_attr( $download->permission_id ); ?>"
     15            data-nonce="<?php echo esc_attr( wp_create_nonce( 'revoke-access' ) ); ?>"
     16        >
     17            <?php esc_html_e( 'Revoke Access', 'dokan-lite' ); ?>
     18        </button>
    1119    </div>
    1220
Note: See TracChangeset for help on using the changeset viewer.