質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WooCommerce

WooCommerceは、2011年にリリースされたWordPressのためのECプラグインです。ECサイトに必要な一連の機能を簡単に導入できる上、柔軟なカスタマイズをすることも可能です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

524閲覧

Woocommerceで販売しているデータ(jpgeやwavやmp4)のサイズなどのファイル詳細情報をお客さんが見る販売ページに記載したい

bokupiroki

総合スコア54

WooCommerce

WooCommerceは、2011年にリリースされたWordPressのためのECプラグインです。ECサイトに必要な一連の機能を簡単に導入できる上、柔軟なカスタマイズをすることも可能です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/02/05 10:37

###実現したいこと・前提条件
Woocommerceで販売しているデータ(jpgeやwavやmp4)のファイル詳細情報をお客さんが見る販売ページに記載したい

  • ファイルサイズ
  • 長さ
  • 縦幅と横幅

など

プラグインを追加する方法、javascript、phpなど手段は問いません。

woocommerce商品登録ページ画像
イメージ説明

###試したこと
例えば単純ファイルのにURLを指定して、ファイルサイズを出力することはphpでできました。
(もっと詳細なファイル情報を取得するにはjavascriptとかが必要かと思いますが)

php

1function get_filesize( $url, $unit = false, $decimals = 2 ) { 2    $headers = get_headers ( $url, 1 ); 3    if ( !empty ( $headers['Content-Length'] ) ) 4        $len = (int) $headers['Content-Length']; 5    else 6        return false; 7    if ( !$unit ) { 8        if ( $len >= pow ( 1024, 3 ) ) 9            $unit = 'GB'; 10        elseif ( $len >= pow ( 1024, 2 ) ) 11            $unit = 'MB'; 12        elseif ( $len >= 1024 ) 13            $unit = 'KB'; 14        else 15            $unit = 'B'; 16    } 17    if ( $unit == 'GB' ) 18        $len = number_format ( floor ( $len / pow ( 1024, 3 ) * 100 ) / 100, $decimals ) . $unit; 19    elseif ( $unit == 'MB' ) 20        $len = number_format ( floor ( $len / pow ( 1024, 2 ) * 100 ) / 100, $decimals ) . $unit; 21    elseif ( $unit == 'KB' ) 22        $len = number_format ( floor ( $len / 1024 * 100 ) / 100, $decimals ) . $unit; 23    elseif ( $unit == 'B' ) 24        $len = number_format ( $len ) . $unit; 25    return $len; 26} 27echo ( $len = get_filesize( 'ファイルのURL' ) ) ? $len : '取得できませんでした。';

引用元サイト
http://www.560designs.com/memo/1277.html

しかし、この場合はファイルのURLがコード内に出力できることが前提となります。
そもそもWoocommerceで販売するデータのURLを取得してコード内に出力する方法があるのかも分かりません。

違うやり方でもいいので、ファイルの詳細情報お客さんが見る商品販売ページにを出力する手段はないでしょうか?

足りない情報があればお伝えください。

###補足情報(FW/ツールのバージョンなど)
WordPress5.3.2
woocommerce3.8.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

WooCommerceで登録したファイル情報はカスタムフィールドに登録されている情報なので、通常のカスタムフィールドと同じ方法でアクセスできます。

もしかしたら、WooCommerce独自関数があるのかもしれませんが、そこは調べてないです。

PHP

1 $meta_values = get_post_meta(get_the_ID(), '_downloadable_files'); 2 3 foreach($meta_values as $meta_value) 4 { 5 foreach($meta_value as $file) 6 { 7 echo $file['file']; 8 } 9 }

追記

今回のケースをどう調べていったかを以下に記載します。

  1. WooCommerceの「商品」はカスタム投稿タイプなので、それに付随する情報はおそらく「カスタムフィールド」だろうと検討をつける
  2. カスタムフィールドはデータベースの「wp_postmeta」テーブルに保存されるので、phpMyAdminで「wp_postmeta」テーブルを見る
  3. それらしい名前「_downloadable_files」を見つける
  4. 個別商品ページのテンプレート(single-product.php)内で、「_downloadable_files」フィールドをvar_dumpしてみる
  5. 目的のもの(今回の場合はダウンロードファイルのURL)を見つける
  6. var_dumpして確認したデータ構造にあわせて、コードを書く

以上のような流れです。

是非、ご自分でも確かめてみてください。
ご参考になれば幸いです。

投稿2020/02/06 01:19

編集2020/02/06 09:43
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bokupiroki

2020/02/06 02:04

ありがとうございます! URLを取得し、ファイルの容量を出力することに成功しました。 今後、同じようなケースがあれば自分でも調べられるようにしたいのですが 「_downloadable_files」という値はどこから見つけてこられたのでしょうか? 「プラグインのファイル内のこのへんを見れば自分でも見つけられる」などがあれば、 ご教授いただきたいです。
退会済みユーザー

退会済みユーザー

2020/02/06 09:44

うまくいったようでよかったです。 回答文に追記しましたので、ご確認ください。
bokupiroki

2020/02/06 11:04

データベースを見に行く発想はありませんでした。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問