在這個迷你系列的第二部分(也是最后一部分)“使用 WordPress 收集捐款”中,您將學習如何編寫一個 WordPress 插件,該插件允許用戶通過比特幣向您發送捐款。
- 第 1 部分 – “使用 WordPress 收集捐款:PayPal”
該插件使用自己的后端設置面板,并且高度可定制。
那么,讓我們開始吧!
初始化插件
步驟 1
在您網站的 wp-content/plugins 目錄中,創建一個名為 donate-bitcoins 的新文件夾。
步驟 2
現在,在該文件夾中創建一個名為 donate-bitcoins.php 的文件。
步驟 3
最后,您需要添加插件標頭信息,這將告訴 WordPress 您的新插件實際上存在于您的服務器上。您可以將這些詳細信息更改為您想要的任何內容,但它們通常應按該順序排列,并包含最少的信息。
<?php /* Plugin Name: Bitcoin Donate Plugin URI: https://code.tutsplus.com Description: Simple Bitcoin donation plugin. Version: 1.0.0 Author: Sam Berson Author URI: http://www.samberson.com/ */
步驟 4
您現在會看到新插件顯示在 WordPress 管理員的插件頁面中。繼續激活插件,盡管您還不會看到太多事情發生。
添加簡碼
您可以在您創建的任何帖子或頁面中使用簡單的短代碼來使用捐贈按鈕。本質上,短代碼是一小段文本,用方括號括起來,允許您在帖子編輯器中從插件或主題調用任何函數或操作。
在此插件中,短代碼為 [donate],可以將其添加到您的帖子或頁面中的任何位置。
步驟 1
要將短代碼添加到 WordPress,您需要使用 add_shortcode 函數,并在其中定義短代碼(在本例中為“捐贈”),然后您將定義一些選項信息。由于我們將輸出 HTML,因此我們需要開始跟蹤輸出。您還需要在下一部分之前關閉 PHP 括號。
function bitcoin_donate_shortcode() { $donate_options = get_option( 'bitcoin_donate_options' ); $address = $donate_options['bitcoin_address']; $counter = $donate_options['bitcoin_counter']; ob_start(); ?>
步驟 2
現在,您將在插件中調用 CoinWidget 腳本,并定義一些 JavaScript 信息。然后,重新打開 PHP 標記、捕獲輸出并關閉該函數。
<script src="http://coinwidget.com/widget/coin.js"></script><script> CoinWidgetCom.go({ wallet_address: '<?php echo $address; ?>', currency: 'bitcoin', counter: '<?php echo $counter; ?>', alignment: 'bl', qrcode: true, auto_show: false, lbl_button: '<?php _e( 'Donate', 'bitcoin_donate' ) ?>', lbl_address: '<?php _e( 'My Bitcoin Address:', 'bitcoin_donate' ) ?>', lbl_count: 'donations', lbl_amount: 'BTC' }); </script><?php return ob_get_clean(); }
比特幣錢包信息
您現在要為設置表單設置一些信息,這將允許您設置比特幣的錢包信息。
步驟 1
您可以首先定義一個名為 bitcoin_donate_wallet_address() 的新函數,并使用 get_option() 函數。
function bitcoin_donate_wallet_address() { $options = get_option( 'bitcoin_donate_options' ); echo "<input name="bitcoin_donate_options[bitcoin_address]" type="text" value="{$options[" bitcoin_address>"; }
步驟 2
讓我們繼續添加一個名為 bitcoin_donate_counter() 的新函數,它定義設置面板中的下拉選項,允許您設置在旁邊顯示哪些數字捐贈按鈕:“交易計數”、“收到金額”或“隱藏”。
function bitcoin_donate_counter() { $options = get_option( 'bitcoin_donate_options' ); ?> <p> <label> <input type="radio" name="bitcoin_donate_options[bitcoin_counter]" value="count" checked true> /> <?php _e( 'Transaction Count', 'bitcoin_donate' ) ?></label> </p> <p> <label> <input type="radio" name="bitcoin_donate_options[bitcoin_counter]" value="amount" checked true> /> <?php _e( 'Amount Received', 'bitcoin_donate' ) ?></label> </p> <p> <label> <input type="radio" name="bitcoin_donate_options[bitcoin_counter]" value="hide" checked true> /> <?php _e( 'Hidden', 'bitcoin_donate' ) ?></label> </p> <?php }
步驟 3
您現在應該添加一個空回調,這是確保插件正常運行所必需的。它只是定義一個新的 WordPress 函數,打開它,然后再次關閉它。
function bitcoin_donate_callback() { // Optional Callback. }
將其全部連接起來
現在您已經生成了短代碼和表單字段,您需要將其連接回 WordPress 管理員,以便該插件正常運行。
步驟 1
您應該首先通過添加以下代碼向后端注冊插件的設置和字段。簡而言之,這段代碼告訴 WordPress 在管理員中顯示什么。
function bitcoin_donate_register_settings_and_fields() { register_setting( 'bitcoin_donate_options', 'bitcoin_donate_options' ); add_settings_section( 'bitcoin_donate_settings_section', __( 'Main Settings', 'bitcoin_donate' ), 'bitcoin_donate_callback', __FILE__ ); add_settings_field( 'bitcoin_address', __( 'Bitcoin Address:', 'bitcoin_donate' ), 'bitcoin_donate_wallet_address', __FILE__, 'bitcoin_donate_settings_section' ); add_settings_field( 'bitcoin_counter', __( 'What should the counter show?', 'bitcoin_donate' ), 'bitcoin_donate_counter', __FILE__, 'bitcoin_donate_settings_section' ); } add_action( 'admin_init', 'bitcoin_donate_register_settings_and_fields' );
步驟 2
現在,您將告訴 WordPress 在后端顯示“設置”表單時要使用什么 HTML。
function bitcoin_donate_options_markup() { ?> <div class="wrap"> <h2><?php _e( 'Bitcoin Donate Options', 'bitcoin_donate' ) ?></h2> <form method="post" action="options.php" enctype="multipart/form-data"> <?php settings_fields( 'bitcoin_donate_options' ); do_settings_sections( __FILE__ ); ?><p class="submit"> <input type="submit" class="button-primary" name="submit" value="<?php _e( 'Save Changes', 'bitcoin_donate' ) ?>"></p> </form> </div> <?php }
步驟 3
最后,您將告訴 WordPress“設置”頁面的名稱、哪個用戶角色可以訪問該頁面以及要使用哪種 HTML(如上定義)。
function bitcoin_donate_initialize_options() { add_options_page( __( 'Bitcoin Donate Options', 'bitcoin_donate' ), __( 'Bitcoin Donate Options', 'bitcoin_donate' ), 'administrator', __FILE__, 'bitcoin_donate_options_markup' ); } add_action( 'admin_menu', 'bitcoin_donate_initialize_options' );
最終源代碼
通過將 [donate] 短代碼添加到您的帖子或頁面,您的插件現在應該可以正常運行了!這是該插件的完整源代碼:
<script> CoinWidgetCom.go({ wallet_address: '<?php echo $address; ?>', currency: 'bitcoin', counter: '<?php echo $counter; ?>', alignment: 'bl', qrcode: true, auto_show: false, lbl_button: '<?php _e( 'Donate', 'bitcoin_donate' ) ?>', lbl_address: '<?php _e( 'My Bitcoin Address:', 'bitcoin_donate' ) ?>', lbl_count: 'donations', lbl_amount: 'BTC' }); </script>"; } function bitcoin_donate_counter() { $options = get_option( 'bitcoin_donate_options' ); ?> <p> <label> <input type="radio" name="bitcoin_donate_options[bitcoin_counter]" value="count" checked true> /> <?php _e( 'Transaction Count', 'bitcoin_donate' ) ?></label> </p> <p> <label> <input type="radio" name="bitcoin_donate_options[bitcoin_counter]" value="amount" checked true> /> <?php _e( 'Amount Received', 'bitcoin_donate' ) ?></label> </p> <p> <label> <input type="radio" name="bitcoin_donate_options[bitcoin_counter]" value="hide" checked true> /> <?php _e( 'Hidden', 'bitcoin_donate' ) ?></label> </p> <?php } function bitcoin_donate_callback() { // Optional Callback. } function bitcoin_donate_register_settings_and_fields() { register_setting( 'bitcoin_donate_options', 'bitcoin_donate_options' ); add_settings_section( 'bitcoin_donate_settings_section', __( 'Main Settings', 'bitcoin_donate' ), 'bitcoin_donate_callback', __FILE__ ); add_settings_field( 'bitcoin_address', __( 'Bitcoin Address:', 'bitcoin_donate' ), 'bitcoin_donate_wallet_address', __FILE__, 'bitcoin_donate_settings_section' ); add_settings_field( 'bitcoin_counter', __( 'What should the counter show?', 'bitcoin_donate' ), 'bitcoin_donate_counter', __FILE__, 'bitcoin_donate_settings_section' ); } add_action( 'admin_init', 'bitcoin_donate_register_settings_and_fields' ); function bitcoin_donate_options_markup() { ?>
總結
您現在已經學習了如何開發另一個全新的插件,該插件允許用戶通過比特幣捐贈。您現在可以初始化插件、使用短代碼并向您的 WordPress 管理員添加設置頁面。
如果您有任何疑問,請隨時在下面留言,我一定會幫助您!