Version Description
- clear class .
- Fix .
Download this release
Release Info
Developer | Saphali |
Plugin | Saphali Woocommerce Russian |
Version | 1.2 |
Comparing to | |
See all releases |
Code changes from version 1.1 to 1.2
- go_pro.php +17 -14
- readme.txt +17 -8
- saphali-woocommerce-lite.php +101 -41
- screenshot-2.png +0 -0
go_pro.php
CHANGED
@@ -12,20 +12,23 @@
|
|
12 |
|
13 |
<strong>Saphali Woocommerce STANDARD</strong>
|
14 |
Плагин вносит в магазин следующие дополнения:
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
|
|
|
|
|
|
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.
|
10 |
-
Version: 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 |
-
|
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.
|
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 |
-
$
|
|
|
|
|
|
|
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 |
-
$
|
|
|
|
|
|
|
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 |
-
$
|
|
|
|
|
|
|
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 |
-
|
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
|
|
|
|
|
308 |
|
309 |
-
<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
|
|
|
|
|
320 |
|
321 |
-
<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
|
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
|
|
|
|
|
372 |
|
373 |
-
<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
|
|
|
|
|
384 |
|
385 |
-
<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["
|
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
|
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
|
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["
|
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">Обя­за­те­ль­ное</th>
|
339 |
|
340 |
+
<th width="65px">Опуб­ли­ко­вать</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">Обя­за­те­ль­ное</th>
|
353 |
|
354 |
+
<th width="65px">Опуб­ли­ко­вать</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">Обя­за­те­ль­ное</th>
|
413 |
|
414 |
+
<th width="65px">Опуб­ли­ко­вать</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">Обя­за­те­ль­ное</th>
|
427 |
|
428 |
+
<th width="65px">Опуб­ли­ко­вать</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">Опуб­ли­ко­вать</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">Опуб­ли­ко­вать</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
|