Saphali Woocommerce Russian - Version 1.2

Version Description

  • clear class .
  • Fix .
Download this release

Release Info

Developer Saphali
Plugin Icon wp plugin Saphali Woocommerce Russian
Version 1.2
Comparing to
See all releases

Code changes from version 1.1 to 1.2

Files changed (4) hide show
  1. go_pro.php +17 -14
  2. readme.txt +17 -8
  3. saphali-woocommerce-lite.php +101 -41
  4. screenshot-2.png +0 -0
go_pro.php CHANGED
@@ -12,20 +12,23 @@
12
 
13
  <strong>Saphali Woocommerce STANDARD</strong>
14
  Плагин вносит в магазин следующие дополнения:
15
- 1. Улучшенная русская локализация Woocommerce.
16
- 2. В общий список валют добавлены — Украинская гривна (грн.), Российский рубль (руб.) и Белорусский рубль (руб.)
17
- 3. Управление полями на странице заказа и на странице профиля. Функция позволяет настроить заказную форму регистрации, чтобы настроить магазин на упрощенение оформления заказа. Вы можете сделать некоторые поля необязательными при регистрации/оформленнии заказа либо удалить их полностью.
18
-
19
- 4. Дополнительные методы оплаты - Приват24, LiqPay (прием оплаты с карт VISA и MasterCard), WebMoney, Яндекс.Деньги, ROBOKASSA, QIWI.
20
- 5. Импорт / Экспорт товаров из прайсов.
21
- 6. Экспорт товаров WooCommerce в Яндекс.Маркет (Yandex.Market) в формате YML.
22
- 7. Поиск по заказным полям (позволяет искать товары по артикулу, цене, свойствам товара и т.д.)
23
- 8. Скрытие цен. Функция позволяет переключить интернет-магазин в режим каталога - только просмотр, заказ возможен только после регистрации и утверждения администратором.
24
- 9. Оптовые цены.
25
- 10. Дополнительная вкладка (таб) «Видео» с возможностью добавления видео как через embed-код, так и через специальную кнопку для быстрого добавления видео с таких сервисов как YouTube, Vimeo и др. (интеграция с плагином Viper’s Video Quicktags).
26
- 11. Защита изображений от воровства. Наложения водяных знаков (watermark) на изображения товаров.
27
- 12. Защита авторского права. Блокировка правой кнопки мышки.
28
- 13. Виджет "Обратный звонок".
 
 
 
29
  Подробнее на сайте <strong><a href="http://saphali.com/saphali-woocommerce-plugin-wordpress" target="_blank">saphali.com</a></strong>
30
 
31
 
12
 
13
  <strong>Saphali Woocommerce STANDARD</strong>
14
  Плагин вносит в магазин следующие дополнения:
15
+ <ol>
16
+ <li>Улучшенная русская локализация Woocommerce.</li>
17
+ <li>В общий список валют добавлены Украинская гривна (грн.), Российский рубль (руб.) и Белорусский рубль (руб.)</li>
18
+ <li>Управление полями на странице заказа и на странице профиля. Функция позволяет настроить заказную форму регистрации, чтобы настроить магазин на упрощенение оформления заказа. Вы можете сделать некоторые поля необязательными при регистрации/оформленнии заказа либо удалить их полностью.</li>
19
+ <li style="padding-bottom: 15px;">Управление количеством колонок в каталоге товаров и рубриках.</li>
20
+
21
+ <li>Дополнительные методы оплаты - Приват24, LiqPay (прием оплаты с карт VISA и MasterCard), WebMoney, Яндекс.Деньги, ROBOKASSA, QIWI.</li>
22
+ <li>Импорт / Экспорт товаров из прайсов.</li>
23
+ <li>Экспорт товаров WooCommerce в Яндекс.Маркет (Yandex.Market) в формате YML.</li>
24
+ <li>Поиск по заказным полям (позволяет искать товары по артикулу, цене, свойствам товара и т.д.)</li>
25
+ <li>Скрытие цен. Функция позволяет переключить интернет-магазин в режим каталога - только просмотр, заказ возможен только после регистрации и утверждения администратором.</li>
26
+ <li>Оптовые цены.</li>
27
+ <li>Дополнительная вкладка (таб) «Видео» с возможностью добавления видео как через embed-код, так и через специальную кнопку для быстрого добавления видео с таких сервисов как YouTube, Vimeo и др. (интеграция с плагином Viper’s Video Quicktags).</li>
28
+ <li>Защита изображений от воровства. Наложения водяных знаков (watermark) на изображения товаров.</li>
29
+ <li>Защита авторского права. Блокировка правой кнопки мышки.</li>
30
+ <li>Виджет "Обратный звонок".</li>
31
+ </ol>
32
  Подробнее на сайте <strong><a href="http://saphali.com/saphali-woocommerce-plugin-wordpress" target="_blank">saphali.com</a></strong>
33
 
34
 
readme.txt CHANGED
@@ -6,8 +6,8 @@ Donate link: http://saphali.com/
6
  Tags: woocommerce, woo commerce russian, russian ruble, ukrainian hryvnia, mod, manadger filds checkout
7
  Requires at least: 3.3 or higher
8
  Tested up to: 3.4.2
9
- Stable tag: 1.1
10
- Version: 1.1
11
  License: GPLv2 or later
12
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
13
 
@@ -43,16 +43,19 @@ Saphali - set of additions to Woocommerce.
43
 
44
  == Changelog ==
45
 
 
 
 
 
 
 
 
46
  = 1.0 =
47
  * Улучшенная русская локализация Woocommerce (корректировка перевода + дополнительный перевод).
48
  * В общий список валют добавлены — Украинская гривна (грн.), Русский рубль (руб.) и Белорусский рубль (руб.)
49
  * Управление полями на странице заказа и на странице профиля. Функция позволяет настроить заказную форму регистрации, чтобы настроить магазин на упрощенение оформления заказа. Вы можете сделать некоторые поля необязательными при регистрации/оформленнии заказа либо удалить их полностью.
50
  * Управление количеством колонок в каталоге товаров и рубриках.
51
 
52
- = 1.1 =
53
- * Исправлена ошибка в управлении полями на странице заказа и на странице профиля.
54
-
55
-
56
 
57
  == License ==
58
 
@@ -67,8 +70,14 @@ Saphali - set of additions to Woocommerce.
67
 
68
  == Upgrade Notice ==
69
 
 
 
 
 
 
 
 
70
  = 1.0 =
71
  Выпущен релиз.
72
 
73
- = 1.1 =
74
- Исправлена ошибка в управлении полями на странице заказа и на странице профиля.
6
  Tags: woocommerce, woo commerce russian, russian ruble, ukrainian hryvnia, mod, manadger filds checkout
7
  Requires at least: 3.3 or higher
8
  Tested up to: 3.4.2
9
+ Stable tag: 1.2
10
+ Version: 1.2
11
  License: GPLv2 or later
12
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
13
 
43
 
44
  == Changelog ==
45
 
46
+ = 1.2 =
47
+ * Добавлено управление атрибутами clear и class в управлении полями.
48
+ * Fix в указании обязательного поля в управлении дополнительными полями и полями доставки.
49
+
50
+ = 1.1 =
51
+ * Исправлена ошибка в управлении полями на странице заказа и на странице профиля.
52
+
53
  = 1.0 =
54
  * Улучшенная русская локализация Woocommerce (корректировка перевода + дополнительный перевод).
55
  * В общий список валют добавлены — Украинская гривна (грн.), Русский рубль (руб.) и Белорусский рубль (руб.)
56
  * Управление полями на странице заказа и на странице профиля. Функция позволяет настроить заказную форму регистрации, чтобы настроить магазин на упрощенение оформления заказа. Вы можете сделать некоторые поля необязательными при регистрации/оформленнии заказа либо удалить их полностью.
57
  * Управление количеством колонок в каталоге товаров и рубриках.
58
 
 
 
 
 
59
 
60
  == License ==
61
 
70
 
71
  == Upgrade Notice ==
72
 
73
+ = 1.2 =
74
+ * Добавлено управление атрибутами clear и class в управлении полями.
75
+ * Fix в указании обязательного поля в управлении дополнительными полями и полями доставки.
76
+
77
+ = 1.1 =
78
+ Исправлена ошибка в управлении полями на странице заказа и на странице профиля.
79
+
80
  = 1.0 =
81
  Выпущен релиз.
82
 
83
+
 
saphali-woocommerce-lite.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Saphali Woocommerce LITE
4
  Plugin URI: http://saphali.com/saphali-woocommerce-plugin-wordpress
5
  Description: Saphali Woocommerce LITE - это бесплатный вордпресс плагин, который добавляет набор дополнений к интернет-магазину на Woocommerce.
6
- Version: 1.1
7
  Author: Saphali
8
  Author URI: http://saphali.com/
9
  */
@@ -129,6 +129,7 @@ function woocommerce_lang() {
129
  $f = $woocommerce->checkout();
130
  if($_POST){
131
  if($_POST["reset"] != 'All') {
 
132
  if(is_array($_POST["billing"]["new_fild"])) {
133
  foreach($_POST["billing"]["new_fild"] as $k_nf => $v_nf) {
134
  if($k_nf == 'name')
@@ -136,7 +137,10 @@ function woocommerce_lang() {
136
  $new_fild[] = $v_nf_f;
137
  else {
138
  foreach($v_nf as $k_nf_f => $v_nf_f) {
139
- $addFild["billing"][$new_fild[$k_nf_f]][$k_nf] = $v_nf_f;
 
 
 
140
  }
141
  }
142
  }
@@ -149,7 +153,10 @@ function woocommerce_lang() {
149
  $new_fild[] = $v_nf_f;
150
  else {
151
  foreach($v_nf as $k_nf_f => $v_nf_f) {
152
- $addFild["shipping"][$new_fild[$k_nf_f]][$k_nf] = $v_nf_f;
 
 
 
153
  }
154
  }
155
  }
@@ -162,26 +169,37 @@ function woocommerce_lang() {
162
  $new_fild[] = $v_nf_f;
163
  else {
164
  foreach($v_nf as $k_nf_f => $v_nf_f) {
165
- $addFild["order"][$new_fild[$k_nf_f]][$k_nf] = $v_nf_f;
 
 
 
166
  }
167
  }
168
  }
169
  unset($_POST["order"]["new_fild"]);
170
  }
 
171
  $filds = $f->checkout_fields;
172
  foreach($filds["billing"] as $key_post => $value_post) {
173
  $filds_new["billing"][$_POST["billing"][$key_post]["order"]][$key_post] = $value_post;
174
- foreach($value_post as $k_post=> $v_post){
175
  if($_POST["billing"][$key_post]['public'] != 'on') {
176
  $filds_new["billing"][$_POST["billing"][$key_post]["order"]][$key_post]["public"] = false;
177
  $fild_remove_filter["billing"][] = $key_post;
178
  } else {$filds_new["billing"][$_POST["billing"][$key_post]["order"]][$key_post]["public"] = true;}
179
- if($k_post == 'required') {$_POST["billing"][$key_post]['required'] = ($_POST["billing"][$key_post]['required'] == 'on') ? true : false ; }
180
 
 
 
 
 
 
181
  if( $_POST["billing"][$key_post][$k_post] != $v_post && isset($_POST["billing"][$key_post][$k_post]) ) {
182
  $filds_new["billing"][$_POST["billing"][$key_post]["order"]][$key_post][$k_post] = $_POST["billing"][$key_post][$k_post];
183
  }
184
-
 
 
 
 
185
  }
186
  unset($_POST["billing"][$key_post]);
187
  }
@@ -193,13 +211,19 @@ function woocommerce_lang() {
193
  $fild_remove_filter["shipping"][] = $key_post;
194
  } else {$filds_new["shipping"][$_POST["shipping"][$key_post]["order"]][$key_post]["public"] = true;}
195
 
 
 
 
 
196
  foreach($value_post as $k_post=> $v_post){
197
- if($k_post == 'required') {$_POST["shipping"][$key_post]['required'] = ($_POST["shipping"][$key_post]['required'] == 'on') ? true : false ; }
198
-
199
  if( $_POST["shipping"][$key_post][$k_post] != $v_post && isset($_POST["shipping"][$key_post][$k_post]) ) {
200
  $filds_new["shipping"][$_POST["shipping"][$key_post]["order"]][$key_post][$k_post] = $_POST["shipping"][$key_post][$k_post];
201
  }
202
-
 
 
 
 
203
  }
204
  unset($_POST["shipping"][$key_post]);
205
  }
@@ -210,17 +234,19 @@ function woocommerce_lang() {
210
  $filds_new["order"][$_POST["order"][$key_post]["order"]][$key_post]["public"] = false;
211
  $fild_remove_filter["order"][] = $key_post;
212
  } else {$filds_new["order"][$_POST["order"][$key_post]["order"]][$key_post]["public"] = true;}
 
 
 
 
 
213
  foreach($value_post as $k_post=> $v_post){
214
- if($k_post == 'required') {$_POST["order"][$key_post]['required'] = ($_POST["order"][$key_post]['required'] == 'on') ? true : false ; }
215
-
216
  if( $_POST["order"][$key_post][$k_post] != $v_post && isset($_POST["order"][$key_post][$k_post]) ) {
217
  $filds_new["order"][$_POST["order"][$key_post]["order"]][$key_post][$k_post] = $_POST["order"][$key_post][$k_post];
218
  }
219
-
220
  }
221
  unset($_POST["order"][$key_post]);
222
  }
223
-
224
  if(!empty($_POST["billing"])) {
225
  foreach($_POST["billing"] as $k_post => $v_post) {
226
  if($v_post["public"] != 'on' )
@@ -239,6 +265,7 @@ function woocommerce_lang() {
239
  $fild_remove_filter["order"][] = $k_post;
240
  }
241
  }
 
242
  $filds_finish["billing"] = $filds_finish["shipping"] = $filds_finish["order"] = array();
243
 
244
  for($i = 0; $i<count($filds_new["billing"]); $i++) {
@@ -254,6 +281,13 @@ function woocommerce_lang() {
254
  $filds_finish["order"] = $filds_finish["order"] + $filds_new["order"][$i];
255
  }
256
 
 
 
 
 
 
 
 
257
  if(is_array($addFild["billing"]))
258
  $filds_finish["billing"] = $filds_finish["billing"] + $addFild["billing"];
259
  if(is_array($addFild["shipping"]))
@@ -261,12 +295,7 @@ function woocommerce_lang() {
261
  if(is_array($addFild["order"]))
262
  $filds_finish["order"] = $filds_finish["order"] + $addFild["order"] + $_POST["order"];
263
 
264
- if(is_array($_POST["billing"]))
265
- $filds_finish["billing"] = $filds_finish["billing"] + $_POST["billing"];
266
- if(is_array($_POST["shipping"]))
267
- $filds_finish["shipping"] = $filds_finish["shipping"] + $_POST["shipping"];
268
- if(is_array($_POST["order"]))
269
- $filds_finish["order"] = $filds_finish["order"] + $_POST["order"];
270
 
271
  $filds_finish_filter = $filds_finish;
272
  if(is_array($fild_remove_filter["billing"])) {
@@ -304,9 +333,11 @@ function woocommerce_lang() {
304
  <th width="115px">Название</th>
305
  <th>Заголовок</th>
306
  <th>Текст в поле</th>
307
- <th>Обязательное</th>
 
 
308
 
309
- <th>Обубликовать</th>
310
 
311
  <th>Удалить/Добавить</th>
312
  </tr>
@@ -316,9 +347,11 @@ function woocommerce_lang() {
316
  <th>Название</th>
317
  <th>Заголовок</th>
318
  <th>Текст в поле</th>
319
- <th>Обязательное</th>
 
 
320
 
321
- <th>Обубликовать</th>
322
 
323
  <th>Удалить/Добавить</th>
324
  </tr>
@@ -335,11 +368,15 @@ function woocommerce_lang() {
335
  if(empty($value['public']) && !is_array($checkout_fields["billing"])) $value['public'] = true;
336
  ?>
337
  <tr>
338
- <td><input value='<?=$key?>' type="text" name="billing[<?=$key?>][name]" /></td>
339
  <td><input value='<?=$value['label']?>' type="text" name="billing[<?=$key?>][label]" /></td>
340
  <td><input value='<?=$value['placeholder']?>' type="text" name="billing[<?=$key?>][placeholder]" /></td>
 
 
 
 
 
341
  <td><input <? if($value['required']) echo 'checked'?> type="checkbox" name="billing[<?=$key?>][required]" /></td>
342
-
343
  <td><input <? if($value['public']) echo 'checked';?> type="checkbox" name="billing[<?=$key?>][public]" /></td>
344
 
345
  <td><input rel="sort_order" id="order_count" type="hidden" name="billing[<?=$key?>][order]" value="<?=$count?>" />
@@ -353,6 +390,8 @@ function woocommerce_lang() {
353
  <td></td>
354
  <td></td>
355
  <td></td>
 
 
356
 
357
  <td></td>
358
 
@@ -368,9 +407,11 @@ function woocommerce_lang() {
368
  <th width="115px">Название</th>
369
  <th>Заголовок</th>
370
  <th>Текст в поле</th>
371
- <th>Обязательное</th>
 
 
372
 
373
- <th>Обубликовать</th>
374
 
375
  <th>Удалить/Добавить</th>
376
  </tr>
@@ -380,9 +421,11 @@ function woocommerce_lang() {
380
  <th>Название</th>
381
  <th>Заголовок</th>
382
  <th>Текст в поле</th>
383
- <th>Обязательное</th>
 
 
384
 
385
- <th>Обубликовать</th>
386
 
387
  <th>Удалить/Добавить</th>
388
  </tr>
@@ -391,14 +434,19 @@ function woocommerce_lang() {
391
  <? $count = 0;
392
  if(is_array($checkout_fields["shipping"])) $f->checkout_fields["shipping"] = $checkout_fields["shipping"];
393
  foreach($f->checkout_fields["shipping"] as $key => $value) {
394
- if( empty($value['public']) && !is_array($checkout_fields["billing"]) ) $value['public'] = true;
395
  ?>
396
  <tr>
397
  <td><input disabled value=<?=$key?> type="text" name="shipping[<?=$key?>][name]" /></td>
398
  <td><input value='<?=$value['label']?>' type="text" name="shipping[<?=$key?>][label]" /></td>
399
  <td><input value='<?=$value['placeholder']?>' type="text" name="shipping[<?=$key?>][placeholder]" /></td>
 
 
 
 
 
 
400
  <td><input <? if($value['required']) echo 'checked'?> type="checkbox" name="shipping[<?=$key?>][required]" /></td>
401
-
402
  <td><input <? if($value['public']) echo 'checked';?> type="checkbox" name="shipping[<?=$key?>][public]" /></td>
403
 
404
  <td><input rel="sort_order" id="order_count" type="hidden" name="shipping[<?=$key?>][order]" value="<?=$count?>" /><input type="button" class="button" id="billing_delete" value="Удалить -"/></td>
@@ -411,6 +459,8 @@ function woocommerce_lang() {
411
  <td></td>
412
  <td></td>
413
 
 
 
414
  <td></td>
415
  <td></td>
416
 
@@ -427,8 +477,9 @@ function woocommerce_lang() {
427
  <th width="120px">Название</th>
428
  <th>Заголовок</th>
429
  <th>Текст в поле</th>
 
430
  <th>Тип поля</th>
431
- <th>Обубликовать</th>
432
 
433
  <th>Удалить/Добавить</th>
434
  </tr>
@@ -438,8 +489,9 @@ function woocommerce_lang() {
438
  <th>Название</th>
439
  <th>Заголовок</th>
440
  <th>Текст в поле</th>
 
441
  <th>Тип поля</th>
442
- <th>Обубликовать</th>
443
 
444
  <th>Удалить/Добавить</th>
445
  </tr>
@@ -448,12 +500,18 @@ function woocommerce_lang() {
448
  <? $count = 0;
449
  if(is_array($checkout_fields["order"])) $f->checkout_fields["order"] = $checkout_fields["order"];
450
  foreach($f->checkout_fields["order"] as $key => $value) {
451
- if(empty($value['public']) && !is_array($checkout_fields["billing"])) $value['public'] = true;
452
  ?>
453
  <tr>
454
  <td><input disabled value=<?=$key?> type="text" name="order[<?=$key?>][name]" /></td>
455
  <td><input value='<?=$value['label']?>' type="text" name="order[<?=$key?>][label]" /></td>
456
  <td><input value='<?=$value['placeholder']?>' type="text" name="order[<?=$key?>][placeholder]" /></td>
 
 
 
 
 
 
457
  <td><input value='<?=$value['type']?>' type="text" name="order[<?=$key?>][type]" /></td>
458
  <td><input <? if($value['public']) echo 'checked';?> type="checkbox" name="order[<?=$key?>][public]" /></td>
459
 
@@ -468,6 +526,8 @@ function woocommerce_lang() {
468
  <td></td>
469
  <td></td>
470
  <td></td>
 
 
471
 
472
  <td><input type="button" class="button" id="order" value="Добавить +"/></td>
473
  </tr>
@@ -483,21 +543,21 @@ function woocommerce_lang() {
483
  <script>
484
  jQuery('.button#billing').live('click',function() {
485
  var obj = jQuery(this).parent().parent();
486
- obj.html('<td><input value="new_fild'+(parseInt(obj.parent().find('tr td input#order_count:last').val(),10)+1)+'" type="text" name="billing[new_fild][name][]" /></td><td><input value="" type="text" name="billing[new_fild][label][]" /></td><td><input value="" type="text" name="billing[new_fild][placeholder][]" /></td><td><input checked type="checkbox" name="billing[new_fild][required][]" /></td><td><input checked type="checkbox" name="billing[new_fild][public][]" /></td><td><input id="order_count" rel="sort_order" type="hidden" name="billing[new_fild][order][]" value="'+(parseInt(obj.parent().find('tr td input#order_count:last').val(),10)+1)+'" /><input type="button" class="button" id="billing_delete" value="Удалить -"/></td>');
487
  obj.removeClass('nodrop nodrag');
488
- obj.after('<tr class="nodrop nodrag"><td></td><td></td><td></td><td></td><td></td><td><input type="button" class="button" id="billing" value="Добавить +"/></td></tr>');
489
  });
490
  jQuery('.button#shipping').live('click',function() {
491
  var obj = jQuery(this).parent().parent();
492
- obj.html('<td><input value="new_fild'+(parseInt(obj.parent().find('tr td input#order_count:last').val(),10)+1)+'" type="text" name="shipping[new_fild][name][]" /></td><td><input value="" type="text" name="shipping[new_fild][label][]" /></td><td><input value="" type="text" name="shipping[new_fild][placeholder][]" /></td><td><input checked type="checkbox" name="shipping[new_fild][required][]" /></td><td><input checked type="checkbox" name="shipping[new_fild][public][]" /></td><td><input id="order_count" rel="sort_order" type="hidden" name="shipping[new_fild][order][]" value="'+(parseInt(obj.parent().find('tr td input#order_count:last').val(),10)+1)+'" /><input type="button" class="button" id="billing_delete" value="Удалить -"/></td>');
493
  obj.removeClass('nodrop nodrag');
494
- obj.after('<tr class="nodrop nodrag"><td></td><td></td><td></td><td></td><td></td><td><input type="button" class="button" id="shipping" value="Добавить +"/></td></tr>');
495
  });
496
  jQuery('.button#order').live('click',function() {
497
  var obj = jQuery(this).parent().parent();
498
- obj.html('<td><input value="new_fild'+(parseInt(obj.parent().find('tr td input#order_count:last').val(),10)+1)+'" type="text" name="order[new_fild][name][]" /></td><td><input value="" type="text" name="order[new_fild][label][]" /></td><td><input value="" type="text" name="order[new_fild][placeholder][]" /></td><td><input checked type="text" name="order[new_fild][type][]" /></td><td><input checked type="checkbox" name="order[new_fild][public][]" /></td><td><input id="order_count" rel="sort_order" type="hidden" name="order[new_fild][order][]" value="'+(parseInt(obj.parent().find('tr td input#order_count:last').val(),10)+1)+'" /><input type="button" class="button" id="billing_delete" value="Удалить -"/></td>');
499
  obj.removeClass('nodrop nodrag');
500
- obj.after('<tr class="nodrop nodrag"><td></td><td></td><td></td><td></td><td></td><td><input type="button" class="button" id="order" value="Добавить +"/></td></tr>');
501
  });
502
 
503
  jQuery('.button#billing_delete').live('click',function() {
3
  Plugin Name: Saphali Woocommerce LITE
4
  Plugin URI: http://saphali.com/saphali-woocommerce-plugin-wordpress
5
  Description: Saphali Woocommerce LITE - это бесплатный вордпресс плагин, который добавляет набор дополнений к интернет-магазину на Woocommerce.
6
+ Version: 1.2
7
  Author: Saphali
8
  Author URI: http://saphali.com/
9
  */
129
  $f = $woocommerce->checkout();
130
  if($_POST){
131
  if($_POST["reset"] != 'All') {
132
+ // Управление новыми полями
133
  if(is_array($_POST["billing"]["new_fild"])) {
134
  foreach($_POST["billing"]["new_fild"] as $k_nf => $v_nf) {
135
  if($k_nf == 'name')
137
  $new_fild[] = $v_nf_f;
138
  else {
139
  foreach($v_nf as $k_nf_f => $v_nf_f) {
140
+ if($k_nf == 'class') {
141
+ $v_nf_f = array ( $v_nf_f );
142
+ $addFild["billing"][$new_fild[$k_nf_f]][$k_nf] = $v_nf_f;
143
+ } else $addFild["billing"][$new_fild[$k_nf_f]][$k_nf] = $v_nf_f;
144
  }
145
  }
146
  }
153
  $new_fild[] = $v_nf_f;
154
  else {
155
  foreach($v_nf as $k_nf_f => $v_nf_f) {
156
+ if($k_nf == 'class') {
157
+ $v_nf_f = array ( $v_nf_f );
158
+ $addFild["shipping"][$new_fild[$k_nf_f]][$k_nf] = $v_nf_f;
159
+ } else $addFild["shipping"][$new_fild[$k_nf_f]][$k_nf] = $v_nf_f;
160
  }
161
  }
162
  }
169
  $new_fild[] = $v_nf_f;
170
  else {
171
  foreach($v_nf as $k_nf_f => $v_nf_f) {
172
+ if($k_nf == 'class') {
173
+ $v_nf_f = array ( $v_nf_f );
174
+ $addFild["order"][$new_fild[$k_nf_f]][$k_nf] = $v_nf_f;
175
+ } else $addFild["order"][$new_fild[$k_nf_f]][$k_nf] = $v_nf_f;
176
  }
177
  }
178
  }
179
  unset($_POST["order"]["new_fild"]);
180
  }
181
+ //END
182
  $filds = $f->checkout_fields;
183
  foreach($filds["billing"] as $key_post => $value_post) {
184
  $filds_new["billing"][$_POST["billing"][$key_post]["order"]][$key_post] = $value_post;
 
185
  if($_POST["billing"][$key_post]['public'] != 'on') {
186
  $filds_new["billing"][$_POST["billing"][$key_post]["order"]][$key_post]["public"] = false;
187
  $fild_remove_filter["billing"][] = $key_post;
188
  } else {$filds_new["billing"][$_POST["billing"][$key_post]["order"]][$key_post]["public"] = true;}
 
189
 
190
+ $_POST["billing"][$key_post]['required'] = ($_POST["billing"][$key_post]['required'] == 'on') ? true : false ;
191
+
192
+ $_POST["billing"][$key_post]['clear'] = $bool_clear = ($_POST["billing"][$key_post]['clear'] == 'on') ? true : false ;
193
+
194
+ foreach($value_post as $k_post=> $v_post){
195
  if( $_POST["billing"][$key_post][$k_post] != $v_post && isset($_POST["billing"][$key_post][$k_post]) ) {
196
  $filds_new["billing"][$_POST["billing"][$key_post]["order"]][$key_post][$k_post] = $_POST["billing"][$key_post][$k_post];
197
  }
198
+ }
199
+ if( $bool_clear ){
200
+ $filds_new["billing"][$_POST["billing"][$key_post]["order"]][$key_post]['clear'] = $bool_clear;
201
+ } elseif(isset($filds_new["billing"][$_POST["billing"][$key_post]["order"]][$key_post]['clear'])) {
202
+ unset($filds_new["billing"][$_POST["billing"][$key_post]["order"]][$key_post]['clear']);
203
  }
204
  unset($_POST["billing"][$key_post]);
205
  }
211
  $fild_remove_filter["shipping"][] = $key_post;
212
  } else {$filds_new["shipping"][$_POST["shipping"][$key_post]["order"]][$key_post]["public"] = true;}
213
 
214
+ $_POST["shipping"][$key_post]['clear'] = $bool_clear = ($_POST["shipping"][$key_post]['clear'] == 'on') ? true : false ;
215
+
216
+ $_POST["shipping"][$key_post]['required'] = ($_POST["shipping"][$key_post]['required'] == 'on') ? true : false ;
217
+
218
  foreach($value_post as $k_post=> $v_post){
 
 
219
  if( $_POST["shipping"][$key_post][$k_post] != $v_post && isset($_POST["shipping"][$key_post][$k_post]) ) {
220
  $filds_new["shipping"][$_POST["shipping"][$key_post]["order"]][$key_post][$k_post] = $_POST["shipping"][$key_post][$k_post];
221
  }
222
+ }
223
+ if( $bool_clear ){
224
+ $filds_new["shipping"][$_POST["shipping"][$key_post]["order"]][$key_post]['clear'] = $bool_clear;
225
+ } elseif(isset($filds_new["shipping"][$_POST["shipping"][$key_post]["order"]][$key_post]['clear'])) {
226
+ unset($filds_new["shipping"][$_POST["shipping"][$key_post]["order"]][$key_post]['clear']);
227
  }
228
  unset($_POST["shipping"][$key_post]);
229
  }
234
  $filds_new["order"][$_POST["order"][$key_post]["order"]][$key_post]["public"] = false;
235
  $fild_remove_filter["order"][] = $key_post;
236
  } else {$filds_new["order"][$_POST["order"][$key_post]["order"]][$key_post]["public"] = true;}
237
+
238
+
239
+ $_POST["order"][$key_post]['required'] = ($_POST["order"][$key_post]['required'] == 'on') ? true : false ;
240
+
241
+
242
  foreach($value_post as $k_post=> $v_post){
 
 
243
  if( $_POST["order"][$key_post][$k_post] != $v_post && isset($_POST["order"][$key_post][$k_post]) ) {
244
  $filds_new["order"][$_POST["order"][$key_post]["order"]][$key_post][$k_post] = $_POST["order"][$key_post][$k_post];
245
  }
 
246
  }
247
  unset($_POST["order"][$key_post]);
248
  }
249
+ // Управление публикацией
250
  if(!empty($_POST["billing"])) {
251
  foreach($_POST["billing"] as $k_post => $v_post) {
252
  if($v_post["public"] != 'on' )
265
  $fild_remove_filter["order"][] = $k_post;
266
  }
267
  }
268
+ //END Управление публикацией
269
  $filds_finish["billing"] = $filds_finish["shipping"] = $filds_finish["order"] = array();
270
 
271
  for($i = 0; $i<count($filds_new["billing"]); $i++) {
281
  $filds_finish["order"] = $filds_finish["order"] + $filds_new["order"][$i];
282
  }
283
 
284
+ if(is_array($_POST["billing"]))
285
+ $filds_finish["billing"] = $filds_finish["billing"] + $_POST["billing"];
286
+ if(is_array($_POST["shipping"]))
287
+ $filds_finish["shipping"] = $filds_finish["shipping"] + $_POST["shipping"];
288
+ if(is_array($_POST["order"]))
289
+ $filds_finish["order"] = $filds_finish["order"] + $_POST["order"];
290
+
291
  if(is_array($addFild["billing"]))
292
  $filds_finish["billing"] = $filds_finish["billing"] + $addFild["billing"];
293
  if(is_array($addFild["shipping"]))
295
  if(is_array($addFild["order"]))
296
  $filds_finish["order"] = $filds_finish["order"] + $addFild["order"] + $_POST["order"];
297
 
298
+
 
 
 
 
 
299
 
300
  $filds_finish_filter = $filds_finish;
301
  if(is_array($fild_remove_filter["billing"])) {
333
  <th width="115px">Название</th>
334
  <th>Заголовок</th>
335
  <th>Текст в поле</th>
336
+ <th width="40px">Clear</th>
337
+ <th>Класс поля</th>
338
+ <th width="65px">Обя&shy;за&shy;те&shy;ль&shy;ное</th>
339
 
340
+ <th width="65px">Опуб&shy;ли&shy;ко&shy;вать</th>
341
 
342
  <th>Удалить/Добавить</th>
343
  </tr>
347
  <th>Название</th>
348
  <th>Заголовок</th>
349
  <th>Текст в поле</th>
350
+ <th width="40px">Clear</th>
351
+ <th>Класс поля</th>
352
+ <th width="65px">Обя&shy;за&shy;те&shy;ль&shy;ное</th>
353
 
354
+ <th width="65px">Опуб&shy;ли&shy;ко&shy;вать</th>
355
 
356
  <th>Удалить/Добавить</th>
357
  </tr>
368
  if(empty($value['public']) && !is_array($checkout_fields["billing"])) $value['public'] = true;
369
  ?>
370
  <tr>
371
+ <td><input disabled value='<?=$key?>' type="text" name="billing[<?=$key?>][name]" /></td>
372
  <td><input value='<?=$value['label']?>' type="text" name="billing[<?=$key?>][label]" /></td>
373
  <td><input value='<?=$value['placeholder']?>' type="text" name="billing[<?=$key?>][placeholder]" /></td>
374
+ <td><input <? if($value['clear']) echo 'checked'?> class="<?=$value['clear']?>" type="checkbox" name="billing[<?=$key?>][clear]" /></td>
375
+ <td><? if(is_array($value['class'])) { foreach($value['class'] as $v_class) { ?>
376
+ <input value='<?=$v_class;?>' type="text" name="billing[<?=$key?>][class][]" /> <? } } else { ?>
377
+ <input value='' type="text" name="billing[<?=$key?>][class][]" /> <?
378
+ } ?></td>
379
  <td><input <? if($value['required']) echo 'checked'?> type="checkbox" name="billing[<?=$key?>][required]" /></td>
 
380
  <td><input <? if($value['public']) echo 'checked';?> type="checkbox" name="billing[<?=$key?>][public]" /></td>
381
 
382
  <td><input rel="sort_order" id="order_count" type="hidden" name="billing[<?=$key?>][order]" value="<?=$count?>" />
390
  <td></td>
391
  <td></td>
392
  <td></td>
393
+ <td></td>
394
+ <td></td>
395
 
396
  <td></td>
397
 
407
  <th width="115px">Название</th>
408
  <th>Заголовок</th>
409
  <th>Текст в поле</th>
410
+ <th width="40px">Clear</th>
411
+ <th>Класс поля</th>
412
+ <th width="65px">Обя&shy;за&shy;те&shy;ль&shy;ное</th>
413
 
414
+ <th width="65px">Опуб&shy;ли&shy;ко&shy;вать</th>
415
 
416
  <th>Удалить/Добавить</th>
417
  </tr>
421
  <th>Название</th>
422
  <th>Заголовок</th>
423
  <th>Текст в поле</th>
424
+ <th width="40px">Clear</th>
425
+ <th>Класс поля</th>
426
+ <th width="65px">Обя&shy;за&shy;те&shy;ль&shy;ное</th>
427
 
428
+ <th width="65px">Опуб&shy;ли&shy;ко&shy;вать</th>
429
 
430
  <th>Удалить/Добавить</th>
431
  </tr>
434
  <? $count = 0;
435
  if(is_array($checkout_fields["shipping"])) $f->checkout_fields["shipping"] = $checkout_fields["shipping"];
436
  foreach($f->checkout_fields["shipping"] as $key => $value) {
437
+ if( empty($value['public']) && !is_array($checkout_fields["shipping"]) ) $value['public'] = true;
438
  ?>
439
  <tr>
440
  <td><input disabled value=<?=$key?> type="text" name="shipping[<?=$key?>][name]" /></td>
441
  <td><input value='<?=$value['label']?>' type="text" name="shipping[<?=$key?>][label]" /></td>
442
  <td><input value='<?=$value['placeholder']?>' type="text" name="shipping[<?=$key?>][placeholder]" /></td>
443
+ <td><input <? if($value['clear']) echo 'checked'?> class="<?=$value['clear']?>" type="checkbox" name="shipping[<?=$key?>][clear]" /></td>
444
+ <td><? if(is_array($value['class'])) { foreach($value['class'] as $v_class) { ?>
445
+
446
+ <input value='<?=$v_class;?>' type="text" name="shipping[<?=$key?>][class][]" /> <? } } else { ?>
447
+ <input value='' type="text" name="shipping[<?=$key?>][class][]" /> <?
448
+ } ?></td>
449
  <td><input <? if($value['required']) echo 'checked'?> type="checkbox" name="shipping[<?=$key?>][required]" /></td>
 
450
  <td><input <? if($value['public']) echo 'checked';?> type="checkbox" name="shipping[<?=$key?>][public]" /></td>
451
 
452
  <td><input rel="sort_order" id="order_count" type="hidden" name="shipping[<?=$key?>][order]" value="<?=$count?>" /><input type="button" class="button" id="billing_delete" value="Удалить -"/></td>
459
  <td></td>
460
  <td></td>
461
 
462
+ <td></td>
463
+ <td></td>
464
  <td></td>
465
  <td></td>
466
 
477
  <th width="120px">Название</th>
478
  <th>Заголовок</th>
479
  <th>Текст в поле</th>
480
+ <th>Класс поля</th>
481
  <th>Тип поля</th>
482
+ <th width="65px">Опуб&shy;ли&shy;ко&shy;вать</th>
483
 
484
  <th>Удалить/Добавить</th>
485
  </tr>
489
  <th>Название</th>
490
  <th>Заголовок</th>
491
  <th>Текст в поле</th>
492
+ <th>Класс поля</th>
493
  <th>Тип поля</th>
494
+ <th width="65px">Опуб&shy;ли&shy;ко&shy;вать</th>
495
 
496
  <th>Удалить/Добавить</th>
497
  </tr>
500
  <? $count = 0;
501
  if(is_array($checkout_fields["order"])) $f->checkout_fields["order"] = $checkout_fields["order"];
502
  foreach($f->checkout_fields["order"] as $key => $value) {
503
+ if(empty($value['public']) && !is_array($checkout_fields["order"])) $value['public'] = true;
504
  ?>
505
  <tr>
506
  <td><input disabled value=<?=$key?> type="text" name="order[<?=$key?>][name]" /></td>
507
  <td><input value='<?=$value['label']?>' type="text" name="order[<?=$key?>][label]" /></td>
508
  <td><input value='<?=$value['placeholder']?>' type="text" name="order[<?=$key?>][placeholder]" /></td>
509
+
510
+ <td><? if(is_array($value['class'])) { foreach($value['class'] as $v_class) { ?>
511
+
512
+ <input value='<?=$v_class;?>' type="text" name="order[<?=$key?>][class][]" /> <? } } else { ?>
513
+ <input value='' type="text" name="order[<?=$key?>][class][]" /> <?
514
+ } ?></td>
515
  <td><input value='<?=$value['type']?>' type="text" name="order[<?=$key?>][type]" /></td>
516
  <td><input <? if($value['public']) echo 'checked';?> type="checkbox" name="order[<?=$key?>][public]" /></td>
517
 
526
  <td></td>
527
  <td></td>
528
  <td></td>
529
+ <td></td>
530
+
531
 
532
  <td><input type="button" class="button" id="order" value="Добавить +"/></td>
533
  </tr>
543
  <script>
544
  jQuery('.button#billing').live('click',function() {
545
  var obj = jQuery(this).parent().parent();
546
+ obj.html('<td><input value="new_fild'+(parseInt(obj.parent().find('tr td input#order_count:last').val(),10)+1)+'" type="text" name="billing[new_fild][name][]" /></td><td><input value="" type="text" name="billing[new_fild][label][]" /></td><td><input value="" type="text" name="billing[new_fild][placeholder][]" /></td><td><input type="checkbox" name="billing[new_fild][clear][]" /></td><td><input value="" type="text" name="billing[new_fild][class][]" /></td><td><input checked type="checkbox" name="billing[new_fild][required][]" /></td><td><input checked type="checkbox" name="billing[new_fild][public][]" /></td><td><input id="order_count" rel="sort_order" type="hidden" name="billing[new_fild][order][]" value="'+(parseInt(obj.parent().find('tr td input#order_count:last').val(),10)+1)+'" /><input type="button" class="button" id="billing_delete" value="Удалить -"/></td>');
547
  obj.removeClass('nodrop nodrag');
548
+ obj.after('<tr class="nodrop nodrag"><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td><input type="button" class="button" id="billing" value="Добавить +"/></td></tr>');
549
  });
550
  jQuery('.button#shipping').live('click',function() {
551
  var obj = jQuery(this).parent().parent();
552
+ obj.html('<td><input value="new_fild'+(parseInt(obj.parent().find('tr td input#order_count:last').val(),10)+1)+'" type="text" name="shipping[new_fild][name][]" /></td><td><input value="" type="text" name="shipping[new_fild][label][]" /></td><td><input value="" type="text" name="shipping[new_fild][placeholder][]" /></td><td><input type="checkbox" name="shipping[new_fild][clear][]" /></td><td><input value="" type="text" name="shipping[new_fild][class][]" /></td><td><input checked type="checkbox" name="shipping[new_fild][required][]" /></td><td><input checked type="checkbox" name="shipping[new_fild][public][]" /></td><td><input id="order_count" rel="sort_order" type="hidden" name="shipping[new_fild][order][]" value="'+(parseInt(obj.parent().find('tr td input#order_count:last').val(),10)+1)+'" /><input type="button" class="button" id="billing_delete" value="Удалить -"/></td>');
553
  obj.removeClass('nodrop nodrag');
554
+ obj.after('<tr class="nodrop nodrag"><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td><input type="button" class="button" id="shipping" value="Добавить +"/></td></tr>');
555
  });
556
  jQuery('.button#order').live('click',function() {
557
  var obj = jQuery(this).parent().parent();
558
+ obj.html('<td><input value="new_fild'+(parseInt(obj.parent().find('tr td input#order_count:last').val(),10)+1)+'" type="text" name="order[new_fild][name][]" /></td><td><input value="" type="text" name="order[new_fild][label][]" /></td><td><input value="" type="text" name="order[new_fild][placeholder][]" /></td><td><input value="" type="text" name="order[new_fild][class][]" /></td><td><input checked type="text" name="order[new_fild][type][]" /></td><td><input checked type="checkbox" name="order[new_fild][public][]" /></td><td><input id="order_count" rel="sort_order" type="hidden" name="order[new_fild][order][]" value="'+(parseInt(obj.parent().find('tr td input#order_count:last').val(),10)+1)+'" /><input type="button" class="button" id="billing_delete" value="Удалить -"/></td>');
559
  obj.removeClass('nodrop nodrag');
560
+ obj.after('<tr class="nodrop nodrag"><td></td><td></td><td></td><td></td><td></td><td></td><td><input type="button" class="button" id="order" value="Добавить +"/></td></tr>');
561
  });
562
 
563
  jQuery('.button#billing_delete').live('click',function() {
screenshot-2.png CHANGED
Binary file