Persian Woocommerce - Version 3.6.4

Version Description



  • *
Download this release

Release Info

Developer mahdiy
Plugin Icon 128x128 Persian Woocommerce
Version 3.6.4
Comparing to
See all releases

Code changes from version 3.6.3 to 3.6.4

assets/fonts/app/irsans_bold.ttf ADDED
Binary file
assets/fonts/app/irsans_regular.ttf ADDED
Binary file
assets/images/app/amber.png ADDED
Binary file
assets/images/app/blue.png ADDED
Binary file
assets/images/app/blue_grey.png ADDED
Binary file
assets/images/app/brown.png ADDED
Binary file
assets/images/app/cyan.png ADDED
Binary file
assets/images/app/deep-orange.png ADDED
Binary file
assets/images/app/deep-purple.png ADDED
Binary file
assets/images/app/green.png ADDED
Binary file
assets/images/app/grey.png ADDED
Binary file
assets/images/app/indigo.png ADDED
Binary file
assets/images/app/light-blue.png ADDED
Binary file
assets/images/app/light-green.png ADDED
Binary file
assets/images/app/lime.png ADDED
Binary file
assets/images/app/orange.png ADDED
Binary file
assets/images/app/pink-2.png ADDED
Binary file
assets/images/app/purple.png ADDED
Binary file
assets/images/app/red-2.png ADDED
Binary file
assets/images/app/teal.png ADDED
Binary file
assets/images/app/yellow.png ADDED
Binary file
include/class-core.php CHANGED
@@ -10,7 +10,7 @@ if ( ! class_exists( 'Persian_Woocommerce_Core' ) ) :
10
 
11
  public $file_dir, $wc_is_active;
12
 
13
- //sub classess
14
  public $tools, $widget, $translate, $currencies, $address, $gateways;
15
 
16
  protected static $_instance = null;
@@ -71,6 +71,11 @@ if ( ! class_exists( 'Persian_Woocommerce_Core' ) ) :
71
  ) );
72
  }
73
 
 
 
 
 
 
74
  do_action( "PW_Menu" );
75
 
76
  add_submenu_page( 'persian-wc', 'افزونه ها', 'افزونه ها', 'manage_woocommerce', 'persian-wc-plugins', array(
@@ -109,6 +114,10 @@ if ( ! class_exists( 'Persian_Woocommerce_Core' ) ) :
109
  include( 'view/html-admin-page-plugins.php' );
110
  }
111
 
 
 
 
 
112
  public function about_page() {
113
  include( 'view/html-admin-page-about.php' );
114
  }
@@ -166,6 +175,7 @@ if ( ! class_exists( 'Persian_Woocommerce_Core' ) ) :
166
 
167
  public function enqueue_scripts() {
168
  $pages = array(
 
169
  'persian-wc-about',
170
  'persian-wc-plugins',
171
  'wc-persian-plugins',
@@ -218,27 +228,27 @@ if ( ! class_exists( 'Persian_Woocommerce_Core' ) ) :
218
  }
219
  ?>
220
  <script type="text/javascript">
221
- jQuery(document).ready(function ($) {
222
- $(document.body).on('click', '.notice-dismiss', function () {
223
- var notice = $(this).closest('.persian_woocommerce_notice');
224
- notice = notice.attr('id');
225
- if (notice.indexOf('persian_woocommerce_') !== -1) {
226
- notice = notice.replace('persian_woocommerce_', '');
227
- $.ajax({
228
- url: "<?php echo admin_url( 'admin-ajax.php' ) ?>",
229
- type: "post",
230
- data: {
231
- notice: notice,
232
- action: 'pw_notice_dismiss',
233
- security: "<?php echo wp_create_nonce( 'pw_notice_dismiss' ); ?>"
234
- },
235
- success: function (response) {
236
- }
237
- });
238
- }
239
- return false;
240
- });
241
- });
242
  </script>
243
  <?php
244
  }
10
 
11
  public $file_dir, $wc_is_active;
12
 
13
+ // sub classes
14
  public $tools, $widget, $translate, $currencies, $address, $gateways;
15
 
16
  protected static $_instance = null;
71
  ) );
72
  }
73
 
74
+ add_submenu_page( 'persian-wc', 'اپلیکیشن', 'اپلیکیشن', 'manage_options', 'persian-wc-app', array(
75
+ $this,
76
+ 'app_page'
77
+ ) );
78
+
79
  do_action( "PW_Menu" );
80
 
81
  add_submenu_page( 'persian-wc', 'افزونه ها', 'افزونه ها', 'manage_woocommerce', 'persian-wc-plugins', array(
114
  include( 'view/html-admin-page-plugins.php' );
115
  }
116
 
117
+ public function app_page() {
118
+ include( 'view/html-admin-page-app.php' );
119
+ }
120
+
121
  public function about_page() {
122
  include( 'view/html-admin-page-about.php' );
123
  }
175
 
176
  public function enqueue_scripts() {
177
  $pages = array(
178
+ 'persian-wc-app',
179
  'persian-wc-about',
180
  'persian-wc-plugins',
181
  'wc-persian-plugins',
228
  }
229
  ?>
230
  <script type="text/javascript">
231
+ jQuery(document).ready(function ( $ ) {
232
+ $(document.body).on('click', '.notice-dismiss', function () {
233
+ var notice = $(this).closest('.persian_woocommerce_notice');
234
+ notice = notice.attr('id');
235
+ if( notice.indexOf('persian_woocommerce_') !== -1 ) {
236
+ notice = notice.replace('persian_woocommerce_', '');
237
+ $.ajax({
238
+ url: "<?php echo admin_url( 'admin-ajax.php' ) ?>",
239
+ type: "post",
240
+ data: {
241
+ notice: notice,
242
+ action: 'pw_notice_dismiss',
243
+ security: "<?php echo wp_create_nonce( 'pw_notice_dismiss' ); ?>"
244
+ },
245
+ success: function ( response ) {
246
+ }
247
+ });
248
+ }
249
+ return false;
250
+ });
251
+ });
252
  </script>
253
  <?php
254
  }
include/class-tools.php CHANGED
@@ -89,7 +89,10 @@ if ( ! class_exists( 'Persian_Woocommerce_Tools' ) ) :
89
  'default' => 'no',
90
  'desc' => 'فعالسازی Datepicker شمسی در صفحه افزودن محصول (آزمایشی - فعلا فقط در صفحه مدیریت محصول)',
91
  ),
92
- array( 'type' => 'sectionend', 'id' => 'general_options' ),
 
 
 
93
  ),
94
 
95
  'price' => array(
@@ -170,6 +173,22 @@ if ( ! class_exists( 'Persian_Woocommerce_Tools' ) ) :
170
  'type' => 'sectionend',
171
  'id' => 'persian_price_option'
172
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
173
  ),
174
 
175
  'checkout' => array(
@@ -271,7 +290,24 @@ if ( ! class_exists( 'Persian_Woocommerce_Tools' ) ) :
271
  array(
272
  'type' => 'sectionend',
273
  'id' => 'phone_options'
274
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
275
  )
276
 
277
  );
@@ -306,7 +342,6 @@ if ( ! class_exists( 'Persian_Woocommerce_Tools' ) ) :
306
  if ( $pagenow == 'admin.php' && $_GET['page'] == 'persian-wc-tools' && isset( $settings[ $tab ] ) ) {
307
 
308
 
309
-
310
  WC_Admin_Settings::output_fields( empty( $section ) ? $settings[ $tab ] : $settings[ $tab ][ $section ] );
311
  }
312
 
@@ -322,25 +357,25 @@ if ( ! class_exists( 'Persian_Woocommerce_Tools' ) ) :
322
 
323
  </div>
324
  <script type="text/javascript">
325
- jQuery(document).ready(function ($) {
326
- $('.persian-woocommerce').on('click', '.select_all', function () {
327
- jQuery(this).closest('td').find('select option').attr('selected', 'selected');
328
- jQuery(this).closest('td').find('select').trigger('change');
329
- return false;
330
- }).on('click', '.select_none', function () {
331
- jQuery(this).closest('td').find('select option').removeAttr('selected');
332
- jQuery(this).closest('td').find('select').trigger('change');
333
- return false;
334
- });
335
-
336
- $('select#PW_Options\\[allowed_states\\]').change(function () {
337
- if (jQuery(this).val() === 'specific') {
338
- jQuery(this).parent().parent().next('tr').show();
339
- } else {
340
- jQuery(this).parent().parent().next('tr').hide();
341
- }
342
- }).change();
343
- });
344
  </script>
345
  <?php
346
  }
@@ -420,3 +455,4 @@ do_action( 'PW_Tools_load', PW()->get_options() );
420
  include( "tools/general.php" );
421
  include( "tools/class-price.php" );
422
  include( "tools/class-datepicker.php" );
 
89
  'default' => 'no',
90
  'desc' => 'فعالسازی Datepicker شمسی در صفحه افزودن محصول (آزمایشی - فعلا فقط در صفحه مدیریت محصول)',
91
  ),
92
+ array(
93
+ 'type' => 'sectionend',
94
+ 'id' => 'general_options'
95
+ ),
96
  ),
97
 
98
  'price' => array(
173
  'type' => 'sectionend',
174
  'id' => 'persian_price_option'
175
  ),
176
+
177
+ array(
178
+ 'title' => 'سایر',
179
+ 'type' => 'title',
180
+ 'id' => 'other_price_option'
181
+ ),
182
+ array(
183
+ 'title' => 'حداقل مبلغ سفارش',
184
+ 'id' => 'PW_Options[minimum_order_amount]',
185
+ 'default' => 0,
186
+ 'type' => 'number',
187
+ ),
188
+ array(
189
+ 'type' => 'sectionend',
190
+ 'id' => 'other_price_option'
191
+ ),
192
  ),
193
 
194
  'checkout' => array(
290
  array(
291
  'type' => 'sectionend',
292
  'id' => 'phone_options'
293
+ ),
294
+
295
+ array(
296
+ 'title' => 'سایر',
297
+ 'type' => 'title',
298
+ 'id' => 'other_options'
299
+ ),
300
+ array(
301
+ 'title' => 'حذف فیلدهای غیرضروری',
302
+ 'id' => 'PW_Options[remove_extra_field_physical]',
303
+ 'type' => 'checkbox',
304
+ 'default' => 'no',
305
+ 'desc' => 'برای حذف فیلدهای غیرضروری از محصولات دانلودی ووکامرس تیک بزنید.',
306
+ ),
307
+ array(
308
+ 'type' => 'sectionend',
309
+ 'id' => 'other_options'
310
+ ),
311
  )
312
 
313
  );
342
  if ( $pagenow == 'admin.php' && $_GET['page'] == 'persian-wc-tools' && isset( $settings[ $tab ] ) ) {
343
 
344
 
 
345
  WC_Admin_Settings::output_fields( empty( $section ) ? $settings[ $tab ] : $settings[ $tab ][ $section ] );
346
  }
347
 
357
 
358
  </div>
359
  <script type="text/javascript">
360
+ jQuery(document).ready(function ( $ ) {
361
+ $('.persian-woocommerce').on('click', '.select_all', function () {
362
+ jQuery(this).closest('td').find('select option').attr('selected', 'selected');
363
+ jQuery(this).closest('td').find('select').trigger('change');
364
+ return false;
365
+ }).on('click', '.select_none', function () {
366
+ jQuery(this).closest('td').find('select option').removeAttr('selected');
367
+ jQuery(this).closest('td').find('select').trigger('change');
368
+ return false;
369
+ });
370
+
371
+ $('select#PW_Options\\[allowed_states\\]').change(function () {
372
+ if( jQuery(this).val() === 'specific' ) {
373
+ jQuery(this).parent().parent().next('tr').show();
374
+ } else {
375
+ jQuery(this).parent().parent().next('tr').hide();
376
+ }
377
+ }).change();
378
+ });
379
  </script>
380
  <?php
381
  }
455
  include( "tools/general.php" );
456
  include( "tools/class-price.php" );
457
  include( "tools/class-datepicker.php" );
458
+ include( "tools/class-checkout.php" );
include/tools/class-checkout.php ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( ! defined( 'ABSPATH' ) ) {
2
+ exit;
3
+ }
4
+
5
+ if ( ! class_exists( 'PW_Tools_Checkout' ) ) :
6
+
7
+ class PW_Tools_Checkout {
8
+
9
+ public function __construct() {
10
+
11
+ if ( PW()->get_options( 'remove_extra_field_physical' ) == 'yes' ) {
12
+ add_filter( 'woocommerce_checkout_fields', array( $this, 'remove_extra_field_physical' ) );
13
+ }
14
+
15
+ }
16
+
17
+ public function remove_extra_field_physical( $fields ) {
18
+
19
+ $has_physical_product = false;
20
+
21
+ if ( ! empty( WC()->cart->cart_contents ) ) {
22
+
23
+ $cart = WC()->cart->get_cart();
24
+
25
+ foreach ( $cart as $key => $values ) {
26
+
27
+ /** @var WC_Product $_product */
28
+ $_product = wc_get_product( $values['variation_id'] ? $values['variation_id'] : $values['product_id'] );
29
+
30
+ if ( ! empty( $_product ) && $_product->exists() && $values['quantity'] > 0 ) {
31
+ if ( $_product->virtual == 'no' && $_product->downloadable == 'no' ) {
32
+ $has_physical_product = true;
33
+ break;
34
+ }
35
+ }
36
+ }
37
+ }
38
+
39
+ if ( ! $has_physical_product ) {
40
+ unset( $fields['billing']['billing_address_1'] );
41
+ unset( $fields['billing']['billing_address_2'] );
42
+ unset( $fields['billing']['billing_company'] );
43
+ unset( $fields['billing']['billing_city'] );
44
+ unset( $fields['billing']['billing_postcode'] );
45
+ unset( $fields['billing']['billing_country'] );
46
+ unset( $fields['billing']['billing_state'] );
47
+ add_filter( 'woocommerce_enable_order_notes_field', '__return_false' );
48
+ }
49
+
50
+ return $fields;
51
+ }
52
+
53
+ }
54
+
55
+ endif;
56
+
57
+ PW()->tools->checkout = new PW_Tools_Checkout();
include/tools/class-price.php CHANGED
@@ -25,6 +25,10 @@ if ( ! class_exists( 'PW_Tools_Price' ) ) :
25
  add_filter( 'woocommerce_cart_total', array( $this, 'persian_number' ) );
26
  }
27
 
 
 
 
 
28
  }
29
 
30
  public function hide_sales_flash( $onsale_html, $post, $product ) {
@@ -56,6 +60,28 @@ if ( ! class_exists( 'PW_Tools_Price' ) ) :
56
  public function persian_number( $price ) {
57
  return str_replace( range( 0, 9 ), array( '۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹' ), $price );
58
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  }
 
60
  endif;
 
61
  PW()->tools->price = new PW_Tools_Price();
25
  add_filter( 'woocommerce_cart_total', array( $this, 'persian_number' ) );
26
  }
27
 
28
+ if ( PW()->get_options( 'minimum_order_amount' ) != 0 ) {
29
+ add_action( 'woocommerce_checkout_process', array( $this, 'wc_minimum_order_amount' ) );
30
+ add_action( 'woocommerce_before_cart', array( $this, 'wc_minimum_order_amount' ) );
31
+ }
32
  }
33
 
34
  public function hide_sales_flash( $onsale_html, $post, $product ) {
60
  public function persian_number( $price ) {
61
  return str_replace( range( 0, 9 ), array( '۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹' ), $price );
62
  }
63
+
64
+ public function wc_minimum_order_amount() {
65
+
66
+ $minimum = PW()->get_options( 'minimum_order_amount' );
67
+
68
+ if ( WC()->cart->get_total( null ) < $minimum ) {
69
+
70
+ $message = sprintf( __( 'مبلغ سفارش شما %s می باشد، حداقل مبلغ جهت ثبت سفارش %s است.' ), wc_price( WC()->cart->get_total( null ) ), wc_price( $minimum ) );
71
+
72
+ if ( is_cart() ) {
73
+
74
+ wc_print_notice( $message, 'error' );
75
+
76
+ } else {
77
+
78
+ wc_add_notice( $message, 'error' );
79
+
80
+ }
81
+ }
82
+ }
83
  }
84
+
85
  endif;
86
+
87
  PW()->tools->price = new PW_Tools_Price();
include/view/html-admin-page-app.php ADDED
@@ -0,0 +1,502 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="wrap about-wrap">
2
+ <h1>به دنیای ووکامرس فارسی خوش آمدید!</h1>
3
+ <div class="about-text">همین الان اپلیکیشن فروشگاه خود را ایجاد کنید و به دنیای موبایل وارد شوید.
4
+ </div>
5
+
6
+ <div class="wp-badge"
7
+ style="background-color:#d8bfd8 !important;background-image:url('<?php echo PW()->plugin_url( 'assets/images/about.png' ); ?>') !important;background-position: center center;background-size: 167px auto !important;"></div>
8
+
9
+ <h2 class="nav-tab-wrapper">
10
+ <a class="nav-tab nav-tab-active" href="https://woocommerce.ir" target="_blank">اپلیکیشن ووکامرس</a>
11
+ <a class="nav-tab" href="https://woocommerce.ir/product-category/plugins/" target="_blank">افزونه ها</a>
12
+ <a href="https://woocommerce.ir/product-category/themes/" class="nav-tab" target="_blank">پوسته ها</a>
13
+ <a href="https://woocommerce.ir/market/" class="nav-tab" target="_blank">فروشگاه</a>
14
+ </h2>
15
+
16
+ <div class="changelog">
17
+
18
+ <div class="feature-section col three-col">
19
+
20
+
21
+ <form method="post" id="app-form" enctype="multipart/form-data" style="color: gray">
22
+
23
+ <table class="form-table">
24
+
25
+ <tbody>
26
+
27
+ <tr valign="top">
28
+ <th scope="row" class="titledesc">انتخاب رنگ بندی</th>
29
+ <td class="forminp forminp-checkbox">
30
+ <fieldset>
31
+ <legend class="screen-reader-text"><span>انتخاب رنگ بندی</span></legend>
32
+
33
+ <img id="app-preview" style="width: 50%;"
34
+ src="<?php echo PW()->plugin_url(); ?>/assets/images/app/red-2.png"/>
35
+
36
+ <br><br>
37
+
38
+ <select name="colorname" id="colorname" style="width:50%; min-width:300px;">
39
+ <option value="red" data-color-primary="#F44336" data-color-text="#ffffff"
40
+ data-img="red-2.png" selected>قرمز
41
+ </option>
42
+ <option value="pink" data-color-primary="#E91E63" data-color-text="#ffffff"
43
+ data-img="pink-2.png"> صورتی
44
+ </option>
45
+ <option value="purple" data-color-primary="#9C27B0" data-color-text="#ffffff"
46
+ data-img="purple.png">بنفش
47
+ </option>
48
+ <option value="deep purple" data-color-primary="#673AB7" data-color-text="#ffffff"
49
+ data-img="deep-purple.png">بنفش تیره
50
+ </option>
51
+ <option value="indigo" data-color-primary="#3F51B5" data-color-text="#ffffff"
52
+ data-img="indigo.png">نیلی
53
+ </option>
54
+ <option value="blue" data-color-primary="#2196F3" data-color-text="#000000"
55
+ data-img="blue.png"> آبی
56
+ </option>
57
+ <option value="light blue" data-color-primary="#03A9F4" data-color-text="#000000"
58
+ data-img="light-blue.png">آبی روشن
59
+ </option>
60
+ <option value="cyan" data-color-primary="#00BCD4" data-color-text="#000000"
61
+ data-img="cyan.png"> سبز آبی
62
+ </option>
63
+ <option value="teal" data-color-primary="#009688" data-color-text="#ffffff"
64
+ data-img="teal.png"> سبز دودی
65
+ </option>
66
+ <option value="green" data-color-primary="#4CAF50" data-color-text="#000000"
67
+ data-img="green.png"> سبز
68
+ </option>
69
+ <option value="light green" data-color-primary="#8BC34A" data-color-text="#000000"
70
+ data-img="light-green.png">سبز روشن
71
+ </option>
72
+ <option value="lime" data-color-primary="#8BC34A" data-color-text="#000000"
73
+ data-img="lime.png"> مغز پسته ای
74
+ </option>
75
+ <option value="yellow" data-color-primary="#FFEB3B" data-color-text="#000000"
76
+ data-img="yellow.png">زرد
77
+ </option>
78
+ <option value="amber" data-color-primary="#FFC107" data-color-text="#000000"
79
+ data-img="amber.png"> کهربایی
80
+ </option>
81
+ <option value="orange" data-color-primary="#FF9800" data-color-text="#000000"
82
+ data-img="orange.png">نارنجی
83
+ </option>
84
+ <option value="deep orange" data-color-primary="#FF5722" data-color-text="#000000"
85
+ data-img="deep-orange.png">نارنجی تیره
86
+ </option>
87
+ <option value="brown" data-color-primary="#795548" data-color-text="#ffffff"
88
+ data-img="brown.png"> قهوه ای
89
+ </option>
90
+ <option value="grey" data-color-primary="#9E9E9E" data-color-text="#000000"
91
+ data-img="grey.png"> خاکستری
92
+ </option>
93
+ <option value="blue grey" data-color-primary="#607D8B" data-color-text="#ffffff"
94
+ data-img="blue_grey.png">آبی خاکستری
95
+ </option>
96
+ </select>
97
+ </td>
98
+ </tr>
99
+
100
+ <tr valign="top">
101
+ <th scope="row" class="titledesc">آیکون برنامه<span style="color:red">*</span></th>
102
+ <td class="forminp forminp-checkbox">
103
+ <fieldset>
104
+ <legend class="screen-reader-text"><span>آیکون برنامه</span></legend>
105
+
106
+ <input name="icon" style="width:50%;min-width:300px;"
107
+ id="icon" type="file">
108
+ </td>
109
+ </tr>
110
+
111
+ <tr valign="top">
112
+ <th scope="row" class="titledesc">لوگو برنامه<span style="color:red">*</span></th>
113
+ <td class="forminp forminp-checkbox">
114
+ <fieldset>
115
+ <legend class="screen-reader-text"><span>لوگو برنامه</span></legend>
116
+
117
+ <input name="logo" style="width:50%;min-width:300px;" onchange="readURL(this);"
118
+ id="logo" type="file">
119
+ </td>
120
+ </tr>
121
+
122
+ <tr valign="top">
123
+ <th scope="row" class="titledesc">شعار</th>
124
+ <td class="forminp forminp-checkbox">
125
+ <fieldset>
126
+ <legend class="screen-reader-text"><span>شعار</span></legend>
127
+
128
+ <input name="slogan" style="width:50%;min-width:300px;" maxlength="35"
129
+ onkeyup="changePreview(this)"
130
+ id="slogan" type="text" value="<?php bloginfo( 'description' ); ?>">
131
+ </td>
132
+ </tr>
133
+
134
+ <tr valign="top">
135
+ <th scope="row" class="titledesc">شعار فرعی</th>
136
+ <td class="forminp forminp-checkbox">
137
+ <fieldset>
138
+ <legend class="screen-reader-text"><span>شعار فرعی</span></legend>
139
+
140
+ <input name="subslogan" style="width:50%;min-width:300px;" maxlength="50"
141
+ onkeyup="changePreview(this)"
142
+ id="subslogan" type="text">
143
+ </td>
144
+ </tr>
145
+
146
+ <tr valign="top">
147
+ <th scope="row" class="titledesc">پیشنمایش</th>
148
+ <td class="forminp forminp-checkbox">
149
+ <div class="device iphone">
150
+ <div class="sidebt bt1"></div>
151
+ <div class="sidebt bt2"></div>
152
+ <div class="pwrbt"></div>
153
+ <div class="border">
154
+ <div class="case">
155
+ <div class="screen">
156
+ <div class="splashScreen_logo logoPreview">
157
+ <img src=""
158
+ id="Content_splashScreen_logo" width="100" height="100">
159
+ </div>
160
+ <div class="splashScreen-slogan">
161
+ <span id="slogan-preview">شعار</span>
162
+ </div>
163
+ <div class="splashScreen-subSlogan">
164
+ <span id="subslogan-preview">شعار فرعی</span>
165
+ </div>
166
+ </div>
167
+ <div class="notch"></div>
168
+ <div class="camera"></div>
169
+ <div class="camera-highlight"></div>
170
+ </div>
171
+ </div>
172
+ </div>
173
+ </td>
174
+ </tr>
175
+
176
+ <tr valign="top" style="display: none;">
177
+ <th scope="row" class="titledesc">ایمیل</th>
178
+ <td class="forminp forminp-checkbox">
179
+ <fieldset>
180
+ <legend class="screen-reader-text"><span>ایمیل</span></legend>
181
+
182
+ <input name="email" style="width:50%;min-width:300px;"
183
+ id="email" type="text" value="<?php bloginfo( 'admin_email' ); ?>">
184
+ </td>
185
+ </tr>
186
+
187
+ <tr valign="top">
188
+ <th scope="row" class="titledesc">تلفن تماس<span style="color:red">*</span></th>
189
+ <td class="forminp forminp-checkbox">
190
+ <fieldset>
191
+ <legend class="screen-reader-text"><span>تلفن تماس</span></legend>
192
+
193
+ <input name="phone" style="width:50%;min-width:300px;"
194
+ id="phone" type="text">
195
+ </td>
196
+ </tr>
197
+
198
+ <tr valign="top">
199
+ <th scope="row" class="titledesc">نام و نام خانوادگی<span style="color:red">*</span></th>
200
+ <td class="forminp forminp-checkbox">
201
+ <fieldset>
202
+ <legend class="screen-reader-text"><span>نام و نام خانوادگی</span></legend>
203
+
204
+ <input name="fullname" style="width:50%;min-width:300px;"
205
+ id="fullname" type="text">
206
+ </td>
207
+ </tr>
208
+
209
+ <tr valign="top">
210
+ <th scope="row" class="titledesc">نام اپلیکیشن</th>
211
+ <td class="forminp forminp-checkbox">
212
+ <fieldset>
213
+ <legend class="screen-reader-text"><span>نام اپلیکیشن</span></legend>
214
+
215
+ <input name="appname" style="width:50%;min-width:300px;"
216
+ id="appname" type="text" value="<?php bloginfo( 'name' ); ?>">
217
+ </td>
218
+ </tr>
219
+
220
+ </tbody>
221
+ </table>
222
+
223
+ <div class="statusMsg" style="background: white;padding: 10px;margin: 10px 0; font-size:18px;"></div>
224
+
225
+ <input name="templateid" id="templateid" type="hidden" value="12">
226
+ <input name="discount" id="discount" type="hidden">
227
+ <input name="domain" id="domain" type="hidden" value="">
228
+ <input name="contactus" id="contactus" type="hidden">
229
+ <input name="aboutus" id="aboutus" type="hidden" value="<?php bloginfo( 'description' ); ?>">
230
+ <input name="siteurl" id="siteurl" type="hidden" value="<?php echo site_url(); ?>">
231
+
232
+ <input type="submit" name="Submit" class="button-primary" value="ثبت">
233
+
234
+ </form>
235
+
236
+ <script>
237
+ function readURL( input ) {
238
+ if( input.files && input.files[ 0 ] ) {
239
+ var reader = new FileReader();
240
+
241
+ reader.onload = function ( e ) {
242
+ jQuery('#Content_splashScreen_logo')
243
+ .attr('src', e.target.result);
244
+ };
245
+
246
+ reader.readAsDataURL(input.files[ 0 ]);
247
+ }
248
+ }
249
+
250
+ function changePreview( el ) {
251
+ console.log(jQuery(el).val());
252
+ jQuery('#' + jQuery(el).attr('id') + '-preview').html(jQuery(el).val());
253
+ }
254
+
255
+ jQuery(document).ready(function ( $ ) {
256
+
257
+ var pw_plugin_url = '<?php echo PW()->plugin_url(); ?>';
258
+
259
+ $('#colorname').change(function () {
260
+ let url = pw_plugin_url + '/assets/images/app/' + $(this).find(':selected').data('img');
261
+ $('#app-preview').attr('src', url);
262
+ $('.screen').css({ background: $(this).find(':selected').data('color-primary') });
263
+ $('.screen span').css({ color: $(this).find(':selected').data('color-text') });
264
+ });
265
+
266
+ $("#app-form").on('submit', function ( e ) {
267
+ e.preventDefault();
268
+ $.ajax({
269
+ type: 'POST',
270
+ url: 'http://appchar.com/RegisterOrder.ashx',
271
+ data: new FormData(this),
272
+ contentType: false,
273
+ cache: false,
274
+ processData: false,
275
+ beforeSend: function () {
276
+ $('input[type=submit]').attr("disabled", "disabled");
277
+ $('#app-form').css("opacity", ".5");
278
+ $('.statusMsg').html('');
279
+ },
280
+ success: function ( msg ) {
281
+ if( msg.Status == true ) {
282
+ $('#app-form')[ 0 ].reset();
283
+ let message = '<p>اپلیکیشن فروشگاهی شما با موفقیت ثبت شد. <a href="'
284
+ + msg.RedirectUrl +
285
+ '" target="_blank">جهت دانلود اپلیکیشن اینجا کلیک کنید.</a></p>';
286
+
287
+ $('.statusMsg').html('<span style="color:#34A853">' + message + '</span>');
288
+ } else {
289
+ $('.statusMsg').html('<span style="color:#EA4335">' + msg.Message + '</span>');
290
+ }
291
+ },
292
+ error: function ( msg ) {
293
+ $('.statusMsg').html('<span style="color:#EA4335">خطایی در ارتباط با سرور رخ داده است. لطفا دوباره تلاش کنید.</span>');
294
+ },
295
+ complete: function () {
296
+ $('#app-form').css("opacity", "");
297
+ $("input[type=submit]").removeAttr("disabled");
298
+ }
299
+ });
300
+ });
301
+
302
+ //file type validation
303
+ $("[type=file]").change(function () {
304
+ var file = this.files[ 0 ];
305
+ var imagefile = file.type;
306
+ var match = [ "image/jpeg", "image/png", "image/jpg" ];
307
+ if( !((imagefile == match[ 0 ]) || (imagefile == match[ 1 ]) || (imagefile == match[ 2 ])) ) {
308
+ alert('لطفا یک فایل تصویر معتبر انتخاب نمایید.');
309
+ $(this).val('');
310
+ return false;
311
+ }
312
+ });
313
+ });
314
+ </script>
315
+
316
+ <style>
317
+ @import url(http://awebfont.ir/css?id=1554);
318
+
319
+ @font-face {
320
+ font-family: 'irsans bold';
321
+ src: url('<?php echo PW()->plugin_url(); ?>/assets/fonts/app/irsans_bold.ttf') format('truetype');
322
+ }
323
+
324
+ @font-face {
325
+ font-family: 'irsans regular';
326
+ src: url('<?php echo PW()->plugin_url(); ?>/assets/fonts/app/irsans_regular.ttf') format('truetype');
327
+ }
328
+
329
+ span#slogan-preview {
330
+ font-family: 'irsans bold' !important;
331
+ }
332
+
333
+ span#subslogan-preview {
334
+ font-family: 'irsans regular' !important;
335
+ }
336
+
337
+ .device {
338
+ display: inline-block;
339
+ float: none;
340
+ position: relative;
341
+ }
342
+
343
+ .mobile-website {
344
+ position: absolute;
345
+ }
346
+
347
+ .img {
348
+ padding: 0;
349
+ margin: 0;
350
+ vertical-align: bottom
351
+ }
352
+
353
+ .notch {
354
+ width: 25px;
355
+ height: 27px;
356
+ position: absolute;
357
+ left: 187px;
358
+ margin-left: -46px;
359
+ top: 4px;
360
+ display: block;
361
+ border-radius: 0 0 16px 16px;
362
+ background: #2b2b2b;
363
+ /* border: 4px solid #000; */
364
+ }
365
+
366
+ .iphone .screen {
367
+ width: 290px;
368
+ height: 580px;
369
+ margin: 8px 8px 8px;
370
+ text-align: center;
371
+ }
372
+
373
+ .splashScreen-background {
374
+
375
+ display: inline;
376
+ width: 1000px;
377
+ height: 1000px;
378
+ position: absolute;
379
+ line-height: inherit;
380
+
381
+ text-align: center;
382
+ }
383
+
384
+ .splashScreen_logo {
385
+ max-width: 100px;
386
+ max-height: 100px;
387
+ margin: 50% 30% 4% 30%;
388
+ }
389
+
390
+ .splashScreen-slogan {
391
+ direction: rtl;
392
+ white-space: nowrap;
393
+ overflow: hidden;
394
+ text-overflow: ellipsis;
395
+ max-width: 35ch;
396
+ color: white;
397
+ font-size: 18px;
398
+ font-weight: bold;
399
+ font-family: 'Iranian Sans', tahoma, Arial;
400
+ text-align: center;
401
+ }
402
+
403
+ .splashScreen-subSlogan {
404
+ direction: rtl;
405
+ white-space: nowrap;
406
+ overflow: hidden;
407
+ text-overflow: ellipsis;
408
+ max-width: 50ch;
409
+ color: white;
410
+ font-size: 13px;
411
+ margin-top: 8px;
412
+ font-weight: bold;
413
+ font-family: 'Iranian Sans', tahoma, Arial;
414
+ }
415
+
416
+ .screen {
417
+ border: 2px solid #000;
418
+ border-radius: 15px;
419
+ margin: 22px;
420
+ background: red;
421
+ clear: both;
422
+ position: relative;
423
+ overflow-y: hidden;
424
+ overflow-x: hidden;
425
+ }
426
+
427
+ .camera {
428
+ position: absolute;
429
+ left: 153.5px;
430
+ margin-left: -9px;
431
+ top: 8px;
432
+ width: 18px;
433
+ height: 18px;
434
+ display: block;
435
+ border-radius: 8px;
436
+ background: #383838;
437
+ /* border: 4px solid #000; */
438
+ }
439
+
440
+ .camera-highlight {
441
+ width: 6px;
442
+ height: 16px;
443
+ position: absolute;
444
+ top: 9px;
445
+ left: 156px;
446
+ border-radius: 0 8px 8px 0;
447
+ background: #444444;
448
+ /* display: none; */
449
+ }
450
+
451
+ .case {
452
+ background: #2b2b2b;
453
+ position: relative;
454
+ border-radius: 25px;
455
+ box-shadow: 0px 0px 3px 1px #000 inset;
456
+ border: 2px solid #4a4a4a;
457
+ }
458
+
459
+ .border {
460
+ border: 5px solid #efefef;
461
+ border-radius: 51px;
462
+ box-shadow: 2px 2px 12px 2;
463
+ }
464
+
465
+ .iphone .pwrbt {
466
+ position: absolute;
467
+ top: 166px;
468
+ right: -1px;
469
+ background: #4d4d4d;
470
+ border: 1px solid #3e3e3e;
471
+ border: 1px solid #3e3e3e;
472
+ border-radius: 0 3px 3px 0;
473
+ /* border-top-right-radius: 3px; */
474
+ width: 3px;
475
+ height: 59px;
476
+ }
477
+
478
+ .iphone .sidebt {
479
+ position: absolute;
480
+ width: 3px;
481
+ height: 42px;
482
+ background: #4d4d4d;
483
+ border: 1px solid #3e3e3e;
484
+ left: -1px;
485
+ border-top-left-radius: 3px;
486
+ border-bottom-left-radius: 3px;
487
+ }
488
+
489
+ .bt2 {
490
+ top: 200px;
491
+ }
492
+
493
+ .bt1 {
494
+ top: 141px;
495
+ height: 33px;
496
+ }
497
+ </style>
498
+
499
+ </div>
500
+ </div>
501
+
502
+ </div>
readme.txt CHANGED
@@ -5,7 +5,7 @@ author URI: http://www.woocommerce.ir/
5
  plugin URI: http://www.woocommerce.ir/download/
6
  Tags: persian,parsi,parsian,persians,farsi,iran,woocommerce, persian woocommerce, woocommerce farsi, iran, iranian, rtl, fa_IR,states,iranian rials,iranian tomans, woocommerce.ir,affiliate, cart, checkout, commerce, configurable, digital, download, downloadable, e-commerce, ecommerce, inventory, reports, sales, sell, shipping, shop, shopping, stock, store, tax, variable, widgets, woothemes, wordpress ecommerce
7
  Requires at least: 4.4
8
- Tested up to: 5.2.1
9
 
10
  بسته ووکامرس پارسی به راحتی سیستم فروشگاه ساز ووکامرس را فارسی می کند و امکانات جدید متناسب با ایران را به ووکامرس اضافه میکند.
11
 
@@ -44,6 +44,10 @@ Tested up to: 5.2.1
44
  You can read complete documentations on the [woocommerce.ir](http://www.woocommerce.ir)
45
 
46
  == Changelog ==
 
 
 
 
47
  = 3.6.3 =
48
  * رفع باگ در PHP 7.2
49
  = 3.5.5.1 =
5
  plugin URI: http://www.woocommerce.ir/download/
6
  Tags: persian,parsi,parsian,persians,farsi,iran,woocommerce, persian woocommerce, woocommerce farsi, iran, iranian, rtl, fa_IR,states,iranian rials,iranian tomans, woocommerce.ir,affiliate, cart, checkout, commerce, configurable, digital, download, downloadable, e-commerce, ecommerce, inventory, reports, sales, sell, shipping, shop, shopping, stock, store, tax, variable, widgets, woothemes, wordpress ecommerce
7
  Requires at least: 4.4
8
+ Tested up to: 5.2.2
9
 
10
  بسته ووکامرس پارسی به راحتی سیستم فروشگاه ساز ووکامرس را فارسی می کند و امکانات جدید متناسب با ایران را به ووکامرس اضافه میکند.
11
 
44
  You can read complete documentations on the [woocommerce.ir](http://www.woocommerce.ir)
45
 
46
  == Changelog ==
47
+ = 3.6.4 =
48
+ * افزودن فرم ثبت سفارش اپلیکیشن موبایل فروشگاه
49
+ * افزودن ابزار تعیین حداقل مبلغ ثبت سفارش
50
+ * افزودن ابزار حذف فیلدهای غیرضروری برای محصولات دانلودی
51
  = 3.6.3 =
52
  * رفع باگ در PHP 7.2
53
  = 3.5.5.1 =
woocommerce-persian.php CHANGED
@@ -3,11 +3,11 @@
3
  Plugin Name: ووکامرس فارسی
4
  Plugin URI: http://woocommerce.ir
5
  Description: بسته فارسی ساز ووکامرس پارسی به راحتی سیستم فروشگاه ساز ووکامرس را فارسی می کند. با فعال سازی افزونه ، بسیاری از قابلیت های مخصوص ایران به افزونه افزوده می شوند. پشتیبانی در <a href="http://www.woocommerce.ir/" target="_blank">ووکامرس پارسی</a>.
6
- Version: 3.6.3
7
  Author: ووکامرس فارسی
8
  Author URI: http://woocommerce.ir
9
  WC requires at least: 3.0.0
10
- WC tested up to: 3.6.3
11
  */
12
 
13
  if ( ! defined( 'ABSPATH' ) ) {
@@ -15,7 +15,7 @@ if ( ! defined( 'ABSPATH' ) ) {
15
  }
16
 
17
  if ( ! defined( 'PW_VERSION' ) ) {
18
- define( 'PW_VERSION', '3.6.3' );
19
  }
20
 
21
  require_once( 'include/class-core.php' );
3
  Plugin Name: ووکامرس فارسی
4
  Plugin URI: http://woocommerce.ir
5
  Description: بسته فارسی ساز ووکامرس پارسی به راحتی سیستم فروشگاه ساز ووکامرس را فارسی می کند. با فعال سازی افزونه ، بسیاری از قابلیت های مخصوص ایران به افزونه افزوده می شوند. پشتیبانی در <a href="http://www.woocommerce.ir/" target="_blank">ووکامرس پارسی</a>.
6
+ Version: 3.6.4
7
  Author: ووکامرس فارسی
8
  Author URI: http://woocommerce.ir
9
  WC requires at least: 3.0.0
10
+ WC tested up to: 3.6.5
11
  */
12
 
13
  if ( ! defined( 'ABSPATH' ) ) {
15
  }
16
 
17
  if ( ! defined( 'PW_VERSION' ) ) {
18
+ define( 'PW_VERSION', '3.6.4' );
19
  }
20
 
21
  require_once( 'include/class-core.php' );