質問編集履歴

4

見出し修正

2020/03/03 16:53

投稿

bokupiroki
bokupiroki

スコア54

test CHANGED
File without changes
test CHANGED
@@ -208,7 +208,7 @@
208
208
 
209
209
 
210
210
 
211
- ###追記2
211
+ ###追記2:プラグインファイル内のコードの調査
212
212
 
213
213
  Woocommerceのプラグインファイル内のコードを確認したので追記します。
214
214
 

3

誤字修正

2020/03/03 16:53

投稿

bokupiroki
bokupiroki

スコア54

test CHANGED
File without changes
test CHANGED
@@ -210,7 +210,7 @@
210
210
 
211
211
  ###追記2
212
212
 
213
- Woocommerceのプラグインファイル内コードを確認したので追記します。
213
+ Woocommerceのプラグインファイル内コードを確認したので追記します。
214
214
 
215
215
  ①商品投稿画面の入力フォームのhtmlを見ると、ファイルのURLを登録する該当箇所のnameが【_wc_file_urls[]】となっている
216
216
 

2

Woocommerecのプラグインファイルのコードを調査して追記

2020/03/03 16:48

投稿

bokupiroki
bokupiroki

スコア54

test CHANGED
File without changes
test CHANGED
@@ -178,7 +178,7 @@
178
178
 
179
179
 
180
180
 
181
- ###追記:該当箇所のデータベース
181
+ ###追記1:該当箇所のデータベース
182
182
 
183
183
  該当箇所がどんな風にデータベースに登録されているかについて
184
184
 
@@ -205,3 +205,57 @@
205
205
  単純にファイルのURLが入っているだけでなく、このように英数字の羅列も格納されています。
206
206
 
207
207
  ファイルパス以外の情報は、var_dumpしたときに出てくる情報に関係のあるもの(?)なのかと考えています。
208
+
209
+
210
+
211
+ ###追記2
212
+
213
+ Woocommerceのプラグインファイル内をコードを確認したので追記します。
214
+
215
+ ①商品投稿画面の入力フォームのhtmlを見ると、ファイルのURLを登録する該当箇所のnameが【_wc_file_urls[]】となっている
216
+
217
+ ②プラグインファイル内を【_wc_file_urls】で一括検索してみる
218
+
219
+ ↓キャプチャ
220
+
221
+ ![イメージ説明](33c9f53e1defc3a38ee07cad8842fb9e.png)
222
+
223
+
224
+
225
+
226
+
227
+ ↓その中でカスタムフィールドに該当データを登録するために使っているのではないかと思った部分
228
+
229
+ ```php
230
+
231
+ // Those are sanitized inside prepare_downloads.
232
+
233
+ 'downloads' => self::prepare_downloads(
234
+
235
+ isset( $_POST['_wc_file_names'] ) ? wp_unslash( $_POST['_wc_file_names'] ) : array(), // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
236
+
237
+ isset( $_POST['_wc_file_urls'] ) ? wp_unslash( $_POST['_wc_file_urls'] ) : array(), // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
238
+
239
+ isset( $_POST['_wc_file_hashes'] ) ? wp_unslash( $_POST['_wc_file_hashes'] ) : array() // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
240
+
241
+ ),
242
+
243
+ 'product_url' => isset( $_POST['_product_url'] ) ? esc_url_raw( wp_unslash( $_POST['_product_url'] ) ) : '',
244
+
245
+ 'button_text' => isset( $_POST['_button_text'] ) ? wc_clean( wp_unslash( $_POST['_button_text'] ) ) : '',
246
+
247
+ 'children' => 'grouped' === $product_type ? self::prepare_children() : null,
248
+
249
+ 'reviews_allowed' => ! empty( $_POST['comment_status'] ) && 'open' === $_POST['comment_status'],
250
+
251
+ 'attributes' => $attributes,
252
+
253
+ 'default_attributes' => self::prepare_set_attributes( $attributes, 'default_attribute_' ),
254
+
255
+ ```
256
+
257
+
258
+
259
+ 的外れな部分をピックアップしていたら申し訳ありません。
260
+
261
+ その際は修正します。

1

データベース内の情報を追記

2020/03/03 16:47

投稿

bokupiroki
bokupiroki

スコア54

test CHANGED
File without changes
test CHANGED
@@ -175,3 +175,33 @@
175
175
  WordPress5.3.2
176
176
 
177
177
  woocommerce3.8.1
178
+
179
+
180
+
181
+ ###追記:該当箇所のデータベース
182
+
183
+ 該当箇所がどんな風にデータベースに登録されているかについて
184
+
185
+ phpMyAdminで確認すると、「_downloadable_files」は下記の画像のように登録されています。
186
+
187
+ ![イメージ説明](580e5351845e1b6419426dadb066f075.jpeg)
188
+
189
+ wp_postmetaに格納されているを参照しています。
190
+
191
+ 本当はもっと登録しているファイルがあるはずなのですが、なぜか4つしか出てきません。
192
+
193
+ (途中からサイトをSSL化したことが影響しているのでしょうか...)
194
+
195
+
196
+
197
+ 肝心の中身(meta_valuse)についてなのですが、下記のようになっています。
198
+
199
+ ```
200
+
201
+ a:1:{s:36:"7f8b80b7-f8fe-4bbb-a372-d9290030ab41";a:3:{s:2:"id";s:36:"7f8b80b7-f8fe-4bbb-a372-d9290030ab41";s:4:"name";s:12:"【投稿画面で設定したファイル名】";s:4:"file";s:118:"http://【サイトドメイン】/wp-content/uploads/woocommerce_uploads/2020/01/【アップロードしたファイル】";}}
202
+
203
+ ```
204
+
205
+ 単純にファイルのURLが入っているだけでなく、このように英数字の羅列も格納されています。
206
+
207
+ ファイルパス以外の情報は、var_dumpしたときに出てくる情報に関係のあるもの(?)なのかと考えています。