Closed7

wordPressで会員制ダウンロードサイトを作る

lonely_creator_mlonely_creator_m

Easy Digital Downloadsは、金額を0円と入力して設定すると、購入ボタンに無料と表示できる。
Recurring Paymentsという拡張機能を利用すると、サブスクリプションでファイルの販売ができる。
ただし、Easy Digital Downloadsの年間の料金を支払う必要があるので、注意。

3カラムで売り上げ順にランキング表示するwordPressのショートコード

[downloads columns="3" thumbnails="true" orderby="sales" order="DESC"]

無料のダウンロードの回数で、ランキング表示

[downloads columns="3" thumbnails="true" category="無料カテゴリID" orderby="sales" order="DESC"]
lonely_creator_mlonely_creator_m

Simple Download Monitorのショートコード
ダウンロード回数のランキング表示

[sdm_popular_downloads category_slug="paid-download" number="12" fancy="2"]

カテゴリーを指定して表示

[sdm_popular_downloads category_slug="free-download" number="12" fancy="2"]

fancy="2"は、表形式3カラムでランキングを表示できます。
参考記事
https://mitemita.com/simple-download-monitor-shortcode/

lonely_creator_mlonely_creator_m

こちらに、完成したことを記事に書きました。
https://note.com/masaru21/n/n4efc46f3db73
最終的にSimple WordPress MembershipとSimple Download Monitorの組み合わせで、会員がログインしていないとダウウンロードできないウェブサイトを作ることができました。
今回は、サブスクリプションの形の支払い方法なので、この組み合わせが最善だと思います。

lonely_creator_mlonely_creator_m

カテゴリーのファイルを新着順で、表示するショートコード

[sdm_show_dl_from_category category_slug="download" number="12" fancy="2" orderby="date" order="desc"]

downloadというカテゴリーのスラッグのファイルを3カラムで、12コ表示するショートコードです。

lonely_creator_mlonely_creator_m

Simple WordPress Membership でログインしているユーザーの会員ランクをjavascriptで知る方法

Simple Download Monitorは、ログインしているユーザー、ログインしていないユーザーの切替のみできます。
そのためSimple WordPress Membershipの無料会員と有料会員の違いで、ダウンロードボタンの動作を変えることができないのです。
色々調べて、こちらの記事を知りました。
https://wp-labo.com/simple-membership-login-user-membership-level/

https://wp-labo.com/simple-membership-contents-switch/

動く保証はないですが、Bingが書いたコードを掲載します。

// Simple Membershipのインスタンスを生成
$auth = SwpmAuth::get_instance();

// ログインしている場合
if ($auth->is_logged_in()) {
  // 会員ランクを取得
  $membership_level = $auth->get('membership_level');
  // 会員ランクを表示
  echo $membership_level;
}

そして

// Simple Membershipのインスタンスを生成
$auth = SwpmAuth::get_instance();

// ログインしている場合
if ($auth->is_logged_in()) {
  // 会員ランクを取得
  $membership_level = $auth->get('membership_level');
  // javascriptに変数を渡す
  echo "<script>var membershipLevel = $membership_level;</script>";
}

ボタンの制御

// membershipLevelが定義されている場合
if (typeof membershipLevel !== 'undefined') {
  // membershipLevelの値によって処理を分岐
  if (membershipLevel == 1) {
    // 無料会員の場合
    // sdm_fancy2_download_linkクラスの要素を取得
    var buttons = document.getElementsByClassName('sdm_fancy2_download_link');
    // ボタンの数だけ繰り返す
    for (var i = 0; i < buttons.length; i++) {
      // ボタンにクリックイベントを設定
      buttons[i].addEventListener('click', function(e) {
        // クリックを無効化
        e.preventDefault();
        // アラートを表示
        alert('このコンテンツは有料会員のみダウンロードできます。');
      });
    }
  }
}
このスクラップは2023/10/12にクローズされました