Статьи

Создание кнопки PayPal Buy Now с переменными шорткодами

PayPal — это отличный обработчик платежей, который позволяет любому отправлять вам деньги, которые затем можно отправить прямо на ваш банковский счет. В этом уроке вы узнаете, как создать плагин WordPress, позволяющий генерировать кнопку «Купить сейчас» с использованием переменного шорткода.

Основной шорткод будет иметь значение по умолчанию 50 долларов США с Большим размером, хотя вы сможете перезаписывать его каждый раз, когда вводите шорткод; это называется переменным шорткодом.

Итак, начнем!

Создайте в каталоге wp-content/plugins новый каталог с именем paypal-buy-now-button-shortcode и в нем создайте файл с именем paypal-buy-now-button-shortcode.php .

Чтобы WordPress знал, что это плагин, вам нужно добавить следующую информацию заголовка в начало вашего нового PHP-файла.

01
02
03
04
05
06
07
08
09
10
11
12
13
<?php
/**
 * Plugin Name: PayPal Buy Now Button Shortcode
 * Plugin URI: http://www.samberson.com
 * Description: A simple PayPal Buy Now button plugin with shortcode.
 * Version: 1.0.0
 * Author: Sam Berson
 * Author URI: http://www.samberson.com
 * License: GPL-3.0+
 * License URI: http://www.gnu.org/licenses/gpl-3.0.html
 * Domain Path: /lang
 * Text Domain: paypal-buy-now-button-shortcode
 */

Теперь вы начнете с создания новой функции с атрибутами, названной paypal_buy_now_shortcode( $atts ) , и открытия функции.

1
2
3
4
/**
 * Generates the markup for the shortcode on the public site.
 */
function paypal_buy_now_shortcode( $atts ) {

Далее вы настроите параметры плагина и добавите массив, содержащий атрибуты шорткода по умолчанию.

01
02
03
04
05
06
07
08
09
10
11
12
$options = get_option( ‘paypal_buy_now_options’ );
 
$atts = shortcode_atts(
    array(
        ‘amount’ => ’50’,
        ‘currency’ => ‘USD’,
        ‘size’ => ‘SM’
    ),
    $atts
);
 
extract( $atts );

Теперь вы собираетесь установить вывод для внешнего интерфейса шорткода, который является стандартной формой HTML, с включенным в него некоторым PHP, который будет передавать данные формы, такие как идентификатор PayPal, сумма, валюта и кнопка размер. Вы также закроете новую функцию, которую вы создали ранее.

01
02
03
04
05
06
07
08
09
10
11
12
13
return ‘<form action=»https://www.paypal.com/cgi-bin/webscr» method=»post»>
                <div class=»paypal-donations»>
                    <input type=»hidden» name=»cmd» value=»_xclick»>
                    <input type=»hidden» name=»business» value=»‘ . $options[‘paypal_user_id’] . ‘»>
                    <input type=»hidden» name=»amount» value=»‘ . $amount . ‘»>
                    <input type=»hidden» name=»rm» value=»0″>
                    <input type=»hidden» name=»currency_code» value=»‘ . $currency . ‘»>
                    <input type=»image» src=»https://www.paypal.com/en_US/i/btn/btn_buynow_’ . $size . ‘.gif» name=»submit» alt=»‘ . __( ‘PayPal — The safer, easier way to pay online.’, ‘paypal-buy-now-button-shortcode’ ) . ‘»>
                    <img alt=»» src=»https://www.paypal.com/en_US/i/scr/pixel.gif» width=»1″ height=»1″>
                </div>
            </form>’;
 
}

Наконец, вы инициализируете функцию как add_shortcode() с помощью функции add_shortcode() , которая встроена в WordPress. По сути, вы говорите, что шорткод будет [buy_now] , используя функцию paypal_buy_now_shortcode .

1
add_shortcode( ‘buy_now’, ‘paypal_buy_now_shortcode’ );

Далее вы добавите функцию paypal_buy_now_user_id и ее параметры, которые позволят отображать поле ввода HTML в paypal_buy_now_user_id .

1
2
3
4
5
6
7
8
9
/**
 * Generates the markup for the PayPal user id.
 */
function paypal_buy_now_user_id() {
 
    $options = get_option( ‘paypal_buy_now_options’ );
 
    echo «<input name=’paypal_buy_now_options[paypal_user_id]’ type=’email’ value='{$options[‘paypal_user_id’]}’/>»;
}

С paypal_buy_now_register_settings функции paypal_buy_now_register_settings вы будете регистрировать поля настроек в серверной части и присваивать им имена данных. В этом случае вы регистрируете настройки, добавляете раздел в бэкэнд, а затем инициализируете поле PayPal Id .

01
02
03
04
05
06
07
08
09
10
11
/**
 * Registers settings page and fields.
 */
function paypal_buy_now_register_settings() {
 
    register_setting( ‘paypal_buy_now_settings’, ‘paypal_buy_now_options’ );
 
    add_settings_section( ‘paypal_buy_now_section’, », null, __FILE__ );
 
    add_settings_field( ‘paypal_user_id’, __( ‘PayPal Id’, ‘paypal-buy-now-button-shortcode’ ),’paypal_buy_now_user_id’, __FILE__, ‘paypal_buy_now_section’ );
}

Подобно тому, что вы делали ранее с инициализацией шорткода, вы paypal_buy_now_register_settings функцию paypal_buy_now_register_settings в качестве действия в области администратора.

1
add_action( ‘admin_init’, ‘paypal_buy_now_register_settings’ );

Функция paypal_buy_now_options_page позволит вам добавить HTML- paypal_buy_now_options_page необходимый для правильного отображения формы в серверной части. После добавления функции вы создадите структуру HTML с открывающим div и h2 , а затем форму с полями, которые вы инициализировали ранее.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/**
 * Generates the markup for the options page.
 */
function paypal_buy_now_options_page() {
 
    ?>
    <div class=»wrap»>
        <h2><?php _e( ‘PayPal Buy Now Shortcode Settings’, ‘paypal-buy-now-button-shortcode’ );
        <form method=»post» action=»options.php» enctype=»multipart/form-data»>
            <?php
 
            settings_fields( ‘paypal_buy_now_settings’ );
 
            do_settings_sections( __FILE__ );
 
            ?>
            <p class=»submit»>
                <input type=»submit» class=»button-primary» name=»submit» value=»<?php _e( ‘Save Changes’, ‘paypal-buy-now-button-shortcode’ ); ?>»>
            </p>
        </form>
    </div>
    <?php
 
}

Теперь функция paypal_buy_now_add_settings_menu позволит вам создать новое меню / страницу в конце и определить, какими должны быть различные заголовки.

01
02
03
04
05
06
07
08
09
10
11
/**
 * Adds menu item to the settings.
 */
function paypal_buy_now_add_settings_menu() {
 
    $title = __( ‘PayPal Buy Now Shortcode’, ‘paypal-buy-now-button-shortcode’ );
 
    add_options_page( $title, $title, ‘administrator’, __FILE__, ‘paypal_buy_now_options_page’);
}
 
add_action( ‘admin_menu’, ‘paypal_buy_now_add_settings_menu’ );

Вы успешно создали плагин, но как вы его используете? Ну, это очень просто.

Если вы используете основной шорткод самостоятельно, как показано ниже, вы увидите большую кнопку, которая при нажатии установит сумму в 50 долларов США.

1
[buy_now]

Затем вы можете использовать различные атрибуты, которые вы установили, чтобы изменить кнопку. Таким образом, вы можете установить размер либо маленький («SM»), либо большой («LG»).

1
[buy_now size=LG]

Затем код валюты можно установить как любую из распознанных валют PayPal, например, USD или GBP.

1
[buy_now currency=GBP size=LG]

Наконец, вы установите сумму в виде числового значения, например 100 или 40. Не забудьте не включать символ валюты в переменную суммы.

1
[buy_now amount=150 currency=GBP size=LG]

И последнее, что я должен сделать, это то, что, поскольку уже установлены значения по умолчанию, вам не нужно каждый раз устанавливать все три переменные; Вы можете просто изменить один или два из них, если это будет необходимо.

Это оно! Теперь вы создали новый плагин, который позволяет создавать кнопку PayPal Buy Now, используя переменный шорткод. Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь оставлять комментарии ниже!