WordPress ダウンロード管理プラグインは既にたくさんあります。Download Manager, Download Monitor, Simple Download Monitor あたりが人気のプラグインです。
私もこれらのプラグインを使用してきましたが、機能が多すぎて複雑だったり、少し使いにくいところがあったり、足りない機能があったりと、なかなかぴったりなものが見つかりませんでした
そこでシンプルで使いやすく軽快なダウンロードプラグインを作成しました
Simple Download with password
機能
このプラグインの主な機能を紹介します
- すべてのダウンロードファイルをパスワード保護
- ダウンロード用のショートコードとURLの生成
- 柔軟なパスワードスキップ機能
- すべてのファイルタイプのアップロード許可(サイト管理者限定)
人気のプラグインと比べるとサポートしてない機能もあります。ただ、その機能は本当に必要なのか、ない方が軽快に動作するのではないかという視点からバランスよく実装しています
従って、人気のダウンロードプラグインにある下記機能はありません
- ダウンロード数の表示
- 様々なダウンロードボタンのスタイルテンプレート
- 特定IPに対するダウンロード制限
- 外部ストレージサイトからファイルダウンロード
- 分割したマルチパートダウンロード機能
ダウンロード数は表示したいという意見も多いとは思いますが、ページキャッシュ等と相性が悪いですし、その機能を実装すると余分な負荷がかかりページ表示速度が遅くなるので対応していません。ただし、管理画面のログ表示ページからは、指定期間のダウンロード数の確認は出来るようにしています
スタイルに関しては、現在はブロックエディターが使われることが多いので、ダウンロード用のURLさえ生成すれば、後は様々なスタイルのダウンロード用ボタン等をプラグインが提供しなくてもボタンブロックやリンク機能を使用すればよいという考えです。ショートコードを使う場合の既定のボタンスタイルに関しては、フィルター フックを使用することで自由にカスタマイズできます
また、IPによるダウンロード制限はありませんが、全てのダウンロードがパスワードで保護されているので問題ありませんし、ボット等に対しも自動的にダウンロード制限されます
インストール
ダウンロード
公式サイトからダウンロード出来ます
プラグインの新規追加画面から Simple Download with password (プラグインスラッグ名 celtis-simple-download)を検索してインストールすることも出来ます
または、ダウンロードした zipファイルを プラグインの新規追加画面 の プラグインのアップロード からインストールすることが出来ます
インストールしてプラグインを有効化すれば使用することが出来ます
動作環境
- WordPress 6.2 以上
- PHPバージョン 7.4 以上
- PHP の sqlite3 拡張機能(ログ機能で使用)
使い方
ダウンロードファイルを登録する前に、ダウンロードURLリンクのエンドポイント名を決める必要があります。デフォルトの dl から変更したい場合は拡張オプションのエンドポイント名を変更してからダウンロードファイルの登録を行ってください
拡張オプション
全体で共通するオプションです
一般的な使い方では変更不要ですが、必要に応じて設定更新してください
ダウンロードリンクのエンドポイント
ダウンロードURLのエンドポイント名を設定します
エンドポイントが dl と設定されている場合のURLは下記のようになります
例:https://example.com/dl/xxxxx
エンドポイントのスラッグを変更すると、すべてのダウンロード リンク URL が変更されます。すでに公開済のダウンロードURLがある場合はリンク切れになりますのでご注意ください
リファラーによるパスワードスキップ
自サイト内の特定のページからのダウンロードに対して、パスワード入力を不要にしてスキップさせることが出来ます
例えば、デジタル商品を販売していて、そのチェックアウトページのダウンロードリンクに対してはパスワード不要でダウンロードさせたい等の場合に活用します
ドメインからのダウンロード防止
外部サイトのWebページからのダウンロードを防止します
許可なく他サイトにダウンロードリンクが記載され、そこから不正にダウンロードされる等の対策として、そのサイトのドメインURLを登録すれば、そこからのダウンロードを防止することが出来ます
アップロードファイルタイプ制限
WordPressのメディアライブラリのファイルアップロード機能では、アップロード可能なファイルタイプが制限されています。本来の目的がサイトで表示する画像、動画、音声、PDF等をアップロードすることなのでファイルタイプの制限によるセキュリティ対策は望ましいい機能なのですが、ファイルを配布するダウンロード管理プラグインとしては、ファイルタイプのアップロード制限がないほうが良い場合もあります
サイト管理者に対してのみ、アップロードファイルタイプの制限を解除することが出来ます
これにより通常はアップロード出来ないファイルタイプでもサイト管理者なら登録することが出来るようになります
ダウンロードファイル登録
新規作成ボタンをクリックしてダウンロードさせるファイルの登録を行います
名前
ダウンロードURLのスラッグ名を設定します
このスラッグ名は、ダウンロードURLのエンドポイント名の下に続くスラッグ名となります
例、test というスラッグ名の場合は https://example.com/dl/test/
というダウンロードURLとなります
使用可能な文字は、半角英数字、ハイフォン、アンダースコアのみとなります。また、既に同じ名前のスラッグ名が登録されていた場合は、生成されるURL上のスラッグ名は test-1 のようにユニークな番号が自動的に付加されたものとなります
概要
登録するファイルの概要をセットしてください
ファイル登録
ファイル選択ボタンをクリックして登録するファイルをアップロードします
アップロードフォルダーについて
メディアアップローダーのアップロード先は通常は wp-content/uploads フォルダーですが、この登録画面からのファイルアップロードは、wp-content/uploads/celtis-simple-download サブフォルダーとなります
celtis-simple-download フォルダーには、直接のファイルダウンロードを防止するために htaccess ファイルによりアクセス制限しています。但し、サーバーに Nginx 等をお使いの場合は、htaccess によるアクセス制限ができないことがあるので、ご利用のホスティングサービスやサーバー管理者にお問い合わせください
画像ファイルについて
この登録画面からアップロードされた画像ファイルは、大きな画像であってもWordPressコアのサイズ変更処理が行われないようにしており、アップロードされたオリジナル画像が登録されます(ダウンロードファイルはオリジナル画像)
アップロードファイルサイズについて
ファイルのアップロードサイズ制限を増やしたい場合は、php.iniなどの設定を変更する必要がありますので、ご利用のホスティングサービスやサーバー管理者にお問い合わせください。
WP Multibyte Patch プラグインについて
WordPress を日本語環境でお使いの場合、WP Multibyte Patch プラグインを利用されている場合が多いと思われます。
このプラグインを使用しているとデフォルト状態では日本語名のファイルをアップロードすると自動的にファイル名サニタイズ機能でファイル名が MD5 変換されます。
これは、このダウンロードプラグインにとって望まない機能ですので、この登録画面からファイルアップロードした場合には、ファイル名のサニタイズ機能を自動的に無効化しています
パスワード
ダウンロードファイルを登録するには、パスワードの設定が必須となってます
ダウンロードURLを公開するには、パスワードの設定と有効化を行ってください
ユーザー権限によるパスワードスキップ
ダウンロードには、基本的にパスワードが必要ですが、ダウンロードファイル毎にログインユーザーの特定権限の有無に対してパスワード入力をスキップすることが出来ます
会員制サイト等でログインしたユーザーが、特定の権限を持っている場合、パスワードを入力せずにダウンロードさせることができます。設定する権限については、こちらの ユーザー権限 を参照してください
ダウンロードURLの公開
登録したダウンロードファイルの一覧を表示するとショートコードとダウンロードURLが表示されるので、それらをコピーして投稿記事やメールに記載します
自サイトの投稿ページなどからダウンロードさせるには、コンテンツ内にショートコード[celtisdl_download id="xxx"]
等を貼り付けます
ショートコードで表示されるダウンロードボタンのスタイルは、フィルターフックでカスタマイズ出来ますapply_filters( 'celtisdl_download_button_custom', $html, $post )
また、ブロックエディターをご使用の場合は、ダウンロードURLをボタンブロック等のリンクに設定してください
メール等で送信する場合は、ダウンロードURLとパスワードをメールに記載して送信してください。
不特定多数の方に公開したい場合
不特定多数のユーザーに公開したい場合は、ダウンロードボタンの下にでも必要なパスワードを明記しておくことで誰でもダウンロード可にしつつ、ボットはブロックすることが出来ます(パスワード入力が簡易的なreCAPTCHAの代替機能となる)
パスワード入力とダウンロード実行
公開されているダウンロードURLのリンクがクリックされると下記のようなパスワード入力画面が表示されます
入力したパスワードが一致するとファイルがダウンロードされます
パスワード入力フォームは、フィルターフックでカスタマイズ出来ます
同意メッセージや広告の表示などを追加したい場合等にご活用くださいapply_filters( 'celtisdl_password_form_custom', $output, $post )
PDFファイル等の表示について
ファイルのダウンロードは、通常だと登録されているファイルがダウンロードされるだけですが、PDFファイル等の場合にブラウザに表示されることがあります。例えば、firefox ブラウザなら、設定でファイルの種類と取り扱い方法を確認して、Portable Document Format (PDF) が firefoxで開く になっていると別タブにPDF表示されます。Chrome でも同様の設定で自動的に表示される場合があります。これはブラウザの設定により実行されているので、プラグイン側で回避することは難しいです
ダウンロードログ
このプラグインでは、ダウンロードログの保存に SQLite を使用しています。SQLiteが使用できないサーバーではログ機能は無効化されますのでご注意ください
ログ機能を使用すると指定期間の人気のダウンロードや、何時、どこからダウンロード(リファラー有無)されたか等の確認が出来ます
アドオンのご案内
WordPress プラグイン Simple Download with password をご利用頂きありがとうございます.
プラグイン開発やサポートを継続するために、皆様のご支援を必要としています
Simple Download with password を気に入ってくださったら、アドオンの購入をご検討いただけると幸いです
アドオンを使用するとパスワードに有効期限を設定できるようになります
アドオンが有効化されるとダウンロード一覧の password の後ろに Key マークが表示されるので、Key マークをクリックして有効期限付きのパスワードを生成します
クリックしたらダイアログが表示されるので、ここから有効な期間を指定してパスワードを生成します
生成したパスワードは、生成時点から指定された期間のみ有効なパスワードとなります
また、デジタル商品の販売等でチェックアウト時に自動的に送信されるメール等にこのショートコードを記載しておくと(送信時にショートコード実行させる必要あり)販売時点から指定された期間が有効なパスワードをメールで送ることが可能です
有効期限付きパスワードの活用をサポートするための設定オプション
ここでは有効期限付きパスワードを送信するための方法について簡単に紹介いたします
また、パスワードユーティリティの設定には、有効期限付きパスワードの解析と有効期限付きパスワードの強制無効化設定がありますので、不正アクセス対策等に活用してください
Accept Stripe Payments プラグイン
このサイトでも使用している Accept Stripe Payments プラグインに対して、販売時に有効期限付きパスワードを送るためのサポート機能があります
Accept Stripe Payments プラグイン用ユーティリティを有効化すると、商品編集ページに送信メールへの案内情報を追加する設定欄が追加されるので、販売時のお客様への送信メールに案内情報等を追加することが可能となります
その設定欄にショートコード celtisdl_exppw (id にダウンロード登録ID、minute に有効期限を指定)を記載すると、有効期限付きパスワードをユーザーにメール通知することが出来るようになります
例えばダウンロード登録IDが6857で有効期間が30日ならショートコードは[celtisdl_exppw id=”6857″ minute=”43200″] となり、メール送信時にショートコードが実行され、30日間有効なパスワードが生成されます
商品編集ページに設定した案内情報をメールに含めるには、Accept Stripe payments プラグインの全体設定の電子メール設定にあるお客様へのメールの本文に {information} タグを追加する必要があります
デフォルトで設定されている {product_details} タグの次行に {information} を追記してください
メール送信時に {information} の部分に商品ごとの案内情報が挿入されます
WooCommerce プラグイン
WooCommerce でも同様に 商品編集ページに送信メールへの案内情報を追加する設定欄が追加されますので、販売時のお客様への送信メールにパスワード等の案内情報等を追加することが可能となります
WooCommerceが生成するダウンロードURLは、有効期限等が設定可能な高機能なものですが、ダウンロードをパスワード保護したい場合は、商品のダウンロードURLに Simple Download with password のダウンローそURL設定することで可能となります。
ダウンロード実行時は WooCommerce の生成したダウンロードURLを実行するとパスワード付きのダウンロードURLへリダイレクトされて、パスワード入力を求められるようになります
ご購入
ご購入手順
- 今すぐ購入 ボタンをクリックすると、メールアドレスとクレジットカード情報を入力するダイアログが表示されます
- クレジットカード(Visa/Mastercard/American Express/JCB)情報を入力後、お支払いボタンをクリックすると、決済処理となります
- 決済完了後にチェックアウト画面となり、ダウンロード用のリンクが表示されるのでクリックしてアドオンをダウンロードして下さい
- 入力したメールアドレスへも1年間有効のプログラムダウンロード用パスワードが送信されますので大切に保管して下さい
- デジタル商品の性質上、ご購入後のキャンセル・返金・返品はお受けできません。 ご理解のほどよろしくお願いいたします
- 決済は Stripe で処理されクレジットカード情報は当サイトには保存されません
購入情報をメールアドレスへ送信します。日常で使用されているメールアドレスをお使い下さい
アドオンの更新
購入後1年間は下記ダウンロードボタンから最新版を取得することが出来ます
Simple Download with password Addon Version 1.1.1
ダウンロードボタンをクリックするとパスワード入力ページが表示されるので、ご購入時にお送りしたメールに記載されているパスワードを入力してダウンロードして下さい
パスワードを入力すると自動的にダウンロードが実行されます
ご不明な点がございましたら、ご購入時のお取引番号を記載の上、メールにてお問い合わせください
特典! アドオンを購入してくださった方に下記プラグインを提供中
WordPress公式Webサイトに登録していないWordPressテーマやプラグインの情報通知と更新用のマネージャーです
詳しくは下記ページを御覧ください
免責事項
本ソフトウェアを使用した事による、いかなる損害も作者は一切の責任を負いませんので、自己責任の上でご使用下さい
履歴
2024-4-1 Ver0.6.0 WooCommerce 商品のダウンロードURLに指定すると失敗していたので対応
2024-3-16 Ver0.5.2 公式サイトでリリース