質問編集履歴

4

誤字の修正

2018/12/28 02:59

投稿

tks8888
tks8888

スコア10

test CHANGED
File without changes
test CHANGED
@@ -50,7 +50,7 @@
50
50
 
51
51
  functions.phpに記述しています。
52
52
 
53
- ```html
53
+ ```PHP
54
54
 
55
55
  add_filter( 'usces_filter_sku_meta_form_advance_title', 'add_new_sku_meta_title'); //項目を追加
56
56
 
@@ -132,7 +132,7 @@
132
132
 
133
133
  functions.phpに記述しています。
134
134
 
135
- ```html
135
+ ```PHP
136
136
 
137
137
  // 重量2までを1個口として送料を重量で計算しなおす
138
138
 

3

情報の追加

2018/12/28 02:59

投稿

tks8888
tks8888

スコア10

test CHANGED
File without changes
test CHANGED
@@ -40,9 +40,97 @@
40
40
 
41
41
 
42
42
 
43
+ var_dump($carts);で出力を確認したところ、 「["advance"]=> string(0) ""」となっていて重量のカスタム項目が正しく保存されていないのか、取得できていない状況。
44
+
45
+
46
+
43
47
  ### ソースコード
44
48
 
49
+ SKUに重量のカスタム項目を追加する部分
45
50
 
51
+ functions.phpに記述しています。
52
+
53
+ ```html
54
+
55
+ add_filter( 'usces_filter_sku_meta_form_advance_title', 'add_new_sku_meta_title'); //項目を追加
56
+
57
+ function add_new_sku_meta_title(){
58
+
59
+ return '<th colspan="2">カスタム項目</th>';
60
+
61
+ }
62
+
63
+
64
+
65
+ add_filter( 'usces_filter_sku_meta_form_advance_field', 'add_new_sku_meta_field'); //フィールドを新規追加
66
+
67
+ function add_new_sku_meta_field(){
68
+
69
+ return '<td colspan="2" class="item-sku-zaikonum"><input name="newskuadvance" type="text" id="newskuadvance" class="newskuadvance metaboxfield" /></td>'."n";
70
+
71
+ }
72
+
73
+
74
+
75
+ add_filter( 'usces_filter_sku_meta_row_advance', 'add_new_sku_meta_row_advance',10,2); //フィールドを追加
76
+
77
+ function add_new_sku_meta_row_advance( $default_field, $sku ){
78
+
79
+ $metaname = 'itemsku[' .$sku["meta_id"]. '][skuadvance]';
80
+
81
+ return '<td colspan="2" class="item-sku-zaikonum"><input name="' .$metaname.'" type="text" id="' .$metaname. '" class="newskuadvance metaboxfield" value="' .$sku["advance"]. '"/></td>'."n";
82
+
83
+ }
84
+
85
+
86
+
87
+ add_filter( 'usces_filter_add_item_sku_meta_value', 'add_new_sku_meta'); //新規項目を作成
88
+
89
+ function add_new_sku_meta($value){
90
+
91
+ $skuadvance = isset($_POST['newskuadvance']) ? $_POST['newskuadvance'] : '';
92
+
93
+ $value['advance'] = $skuadvance;
94
+
95
+ return $value;
96
+
97
+ }
98
+
99
+
100
+
101
+ add_filter( 'usces_filter_up_item_sku_meta_value', 'up_new_sku_meta'); //項目を変更
102
+
103
+ function up_new_sku_meta($value){
104
+
105
+ $skuadvance = isset($_POST['skuadvance']) ? $_POST['skuadvance'] : '';
106
+
107
+ $value['advance'] = $skuadvance;
108
+
109
+ return $value;
110
+
111
+ }
112
+
113
+
114
+
115
+ add_filter( 'usces_filter_item_save_sku_metadata', 'save_new_sku_meta',10,2 ); //項目を保持
116
+
117
+ function save_new_sku_meta( $skus, $mid ){
118
+
119
+ $skuadvance = isset($_POST['itemsku'][$mid]['skuadvance']) ? $_POST['itemsku'][$mid]['skuadvance']: '';
120
+
121
+ $skus['advance'] = $skuadvance;
122
+
123
+ return $skus;
124
+
125
+ }
126
+
127
+ ```
128
+
129
+
130
+
131
+ 重量で送料を再計算する部分
132
+
133
+ functions.phpに記述しています。
46
134
 
47
135
  ```html
48
136
 
@@ -77,3 +165,5 @@
77
165
  WordPress 5.0.2
78
166
 
79
167
  PHP 7.3.0
168
+
169
+ Welcart 1.9.14

2

わかりやすく修正

2018/12/28 01:05

投稿

tks8888
tks8888

スコア10

test CHANGED
@@ -1 +1 @@
1
- WordPressプラグインのWelcartで送料を商品の重量(個口数)で設定するためのカスタマイズ
1
+ WordPressプラグインのWelcartで送料を商品の重量(個口数)で設定するためのカスタマイズでSKUの重量が取得できない
test CHANGED
@@ -16,9 +16,7 @@
16
16
 
17
17
  検索して調べて、SKUに重量を設定するところまではできたが、注文された商品の重量の合計を取得する方法がわからない。
18
18
 
19
- SKUで設定した重量が保存されていないようで、取得しても空欄になってしまう。
19
+ SKUで設定した重量が保存されていないのか、取得方法が間違っているようで、取得しても空欄になってしまう。
20
-
21
- また、送り先の都道府県別の送料の取得方法がわからない。
22
20
 
23
21
 
24
22
 

1

情報の追加

2018/12/27 09:24

投稿

tks8888
tks8888

スコア10

test CHANGED
File without changes
test CHANGED
@@ -15,6 +15,8 @@
15
15
 
16
16
 
17
17
  検索して調べて、SKUに重量を設定するところまではできたが、注文された商品の重量の合計を取得する方法がわからない。
18
+
19
+ SKUで設定した重量が保存されていないようで、取得しても空欄になってしまう。
18
20
 
19
21
  また、送り先の都道府県別の送料の取得方法がわからない。
20
22
 
@@ -34,7 +36,7 @@
34
36
 
35
37
 
36
38
 
37
- 次のサイトを参考に、個口数を計算して、送り先の都道府県別送料×個口数で送料を出そうとしたが、送り先の都道府県別送料を取得する方法わかりません
39
+ 次のサイトを参考に、個口数を計算して、送り先の都道府県別送料×個口数で送料を出そうとしたが、SKUに追加した重量を取得すると値0になっていて正しい値が取得できない
38
40
 
39
41
  https://teratail.com/questions/100686
40
42
 
@@ -58,7 +60,7 @@
58
60
 
59
61
  foreach($carts as $cart){
60
62
 
61
- $weight += $cart['advance']; //重量を加算
63
+ $weight += $cart['advance']; //重量を加算したいが、$cart['advance']の値が0になっている
62
64
 
63
65
  }
64
66