Всем привет. Помогите новичку с уже готовым кодом. Нужно просто лишь понять что и куда вставить. В общем, на WordPress реализован баланс пользователя (через плагин WP-Recall) и его пополнение. Также в виде плагина реализовано списание с баланса некой суммы в виде кнопки и код этого плагина выглядит так: PHP: <?php /* Plugin Name: Оплата (списание) с баланса клиента Plugin URI: Description: Списание денег за генерацию pdf документа Version: 1.1.1 Author: noname Author URI: Example: [oplati5r]5[/oplati5r] */ class oplati5r { var $options = array( "zashchita" => "JU69Bni6um" ); function oplati5r(){ if (!function_exists ('add_shortcode') ) return; add_shortcode('oplati5r', array (&$this, 'pay_func') ); } function pay_func($atts, $summa=5) { if ($summa<=0) return ''; $user = wp_get_current_user(); $uid = ( isset( $user->ID ) ? (int) $user->ID : 0 ); if (isset($_POST['kodovoe_slovo'])) { if (!$uid) $html = '<span style="color:red">Вы не авторизованы для оплаты</span>'; elseif ($_POST['kodovoe_slovo']!=md5($uid.$summa.$options['zashchita'])) $html = '<span style="color:red">Ошибка отправки формы</span>'; else { global $wpdb; $balans = $wpdb->get_var("SELECT user_balance FROM wp_rmag_users_balance WHERE user_id = '".$uid."' "); if ($balans<$summa) $html = '<span style="color:red">У вас недостаточно средств ('.$balans.' USD). Пополните баланс</span>'; else { $wpdb->query("UPDATE wp_rmag_users_balance SET user_balance = ".( floatval($balans)-floatval($summa) )." WHERE user_id = '".$uid."' "); $to = get_bloginfo('admin_email'); $subject = 'oplata 5 rubley'; $message = "Пользователь с логином " .$user->user_login . " оплатил ".$summa." с баланса ".$balans. "<br>Код проверки платежа RAzc329mYD"; wp_mail( $to, $subject, $message); $html = '<span style="color:green">Оплата принята</span>'; } } } return $html.'<form action="" method="post"> <input type="hidden" name="kodovoe_slovo" value="'.md5($uid.$summa.$options['zashchita']).'"> <input type="submit" value="Оплатить '.$summa.' USD и сгенерировать PDF документ "> </form>'; } } $oplati5r = new oplati5r(); ?> Этот код работает, НО он выводит кнопку "Оплатить 5 руб" тегами [oplati5r]5[/oplati5r] в тексте страницы WordPress. Как это чудо встроить в мою страницу, которая выглядит так: PHP: <form action="<?php echo get_template_directory_uri()?>/action.php" method="post"><ul> <div class="i589">1. Alien Registration Number(s) (A-Number) (if any) <span class="tooltip anim" tabindex="0">???<span>Номер Alien это номер который вводится из какого-то документа и находится этот номер где-то там. <br><b>Более подробно на примере ниже:</b> <br> <img src="<?php echo get_template_directory_uri()?>/1.jpg" alt="Фотоподсказка"> </span></span><input class="u-full-width" type="text" placeholder="Alien номер" name="val1" id="alien" required ></div> <br> <div class="i589">2. U.S. Social Security Number (if any) <span class="tooltip anim" tabindex="0">???<span>Номер SSN это номер который вводится из какого-то документа и находится этот номер где-то там. <br><b>Более подробно на примере ниже:</b> <br> <img src="<?php echo get_template_directory_uri()?>/2.jpg" alt="Фотоподсказка"> </span></span> <input class="u-full-width" type="text" placeholder="Соушел номер" name="val2" id="ssn" required > </div> <br> <div class="i589">3. Complete Last Name <span class="tooltip anim" tabindex="0">???<span>Номер Alien это номер который вводится из какого-то документа и находится этот номер где-то там. <br><b>Более подробно на примере ниже:</b> <br> <img src="1.jpg" alt="Фотоподсказка"> </span></span><input class="u-full-width" type="text" placeholder="Фамилия" name="val3" id="exampleEmailInput" required pattern="^[a-zA-Z]+$" title="Вы обязаны написать фамилию ТОЛЬКО на латинском языке"> </div> <br> <div class="i589">4. First Name <span class="tooltip anim" tabindex="0">???<span>Номер Alien это номер который вводится из какого-то документа и находится этот номер где-то там. <br><b>Более подробно на примере ниже:</b> <br> <img src="1.jpg" alt="Фотоподсказка"> </span></span><input class="u-full-width" type="text" placeholder="Имя" name="val4" id="exampleEmailInput" required pattern="^[a-zA-Z]+$" title="Вы обязаны написать фамилию ТОЛЬКО на латинском языке"> </div> <br> <div class="i589">5. Middle Name <span class="tooltip anim" tabindex="0">???<span>Номер Alien это номер который вводится из какого-то документа и находится этот номер где-то там. <br><b>Более подробно на примере ниже:</b> <br> <img src="1.jpg" alt="Фотоподсказка"> </span></span><input class="u-full-width" type="text" placeholder="Отчество" name="val5" id="exampleEmailInput" required pattern="^[a-zA-Z]+$" title="Вы обязаны написать фамилию ТОЛЬКО на латинском языке"> </div> <br> <textarea class="u-full-width" type="text" placeholder="Бла бла" rows="10" cols="45" name="val6"></textarea> </ul> <br>Галочка или крестик там где есть (к примеру там где выбор пола Gender) <input class="u-full-width" type="checkbox" name="val7" option="xxx" id="exampleEmailInput"> <br><input type="submit" value="Оплатить 5руб и сгенерировать Pdf форму I-589"> То еть проще говоря мне нужно чтобы после ввода данных клиентом, при нажатии на кнопку "Оплатить 5руб и сгенерировать Pdf форму I-589" сразу выполнялся и action.php и происходило списание с баланса . И без всяких тегов типа как тут [oplati5r]5[/oplati5r]. В общем говоря проще как это всё объеденить Заранее всем спасибо !
ну это не совсем то. Попробую переформулировать вопрос: Вот у меня есть простая форма action form: PHP: <form action="action.php" method="POST"> <br/><input type="radio" name="answer" value="a1">Кнопка один <br/><input type="radio" name="answer" value="a2">Кнопка два <br/><input type="text" name="login" style="width:400px;" value="Значение по умолчанию"> <br/><input type="submit" value="OK"> </form> А вот у меня плагин рукописный установлен на списание суммы с клиента: PHP: <?php class oplati5r { var $options = array( "zashchita" => "JU69Bni6um" ); function oplati5r(){ if (!function_exists ('add_shortcode') ) return; add_shortcode('oplati5r', array (&$this, 'pay_func') ); } function pay_func($atts, $summa=5) { if ($summa<=0) return ''; $user = wp_get_current_user(); $uid = ( isset( $user->ID ) ? (int) $user->ID : 0 ); if (isset($_POST['kodovoe_slovo'])) { if (!$uid) $html = '<span style="color:red">Вы не авторизованы для оплаты</span>'; elseif ($_POST['kodovoe_slovo']!=md5($uid.$summa.$options['zashchita'])) $html = '<span style="color:red">Ошибка отправки формы</span>'; else { global $wpdb; $balans = $wpdb->get_var("SELECT user_balance FROM wp_rmag_users_balance WHERE user_id = '".$uid."' "); if ($balans<$summa) $html = '<span style="color:red">У вас недостаточно средств ('.$balans.')</span>'; else { $wpdb->query("UPDATE wp_rmag_users_balance SET user_balance = ".( floatval($balans)-floatval($summa) )." WHERE user_id = '".$uid."' "); $to = get_bloginfo('admin_email'); $subject = 'oplata 5 rubley'; $message = "Пользователь с логином " .$user->user_login . " оплатил ".$summa." с баланса ".$balans. "<br>Код проверки платежа RAzc329mYD"; wp_mail( $to, $subject, $message); $html = '<span style="color:green">Оплата принята</span>'; } } } return $html.'<form action="" method="post"> <input type="hidden" name="kodovoe_slovo" value="'.md5($uid.$summa.$options['zashchita']).'"> <input type="submit" value="Оплатить '.$summa.' руб"> </form>'; } } $oplati5r = new oplati5r(); ?> И если я в свою action form вместо Код (Text): <input type="submit" value="OK"> подставляю шорт код из плагина Код (Text): <?php echo do_shortcode( '[oplati5r]8[/oplati5r]' ); ?> то кнопка появляется эта из плагина но она не делает проверки на наоичие баланса у пользователя и тупо запускает action.php
Да, там работает кнопка да и тут даже если вынести php шорт код её за тег </form> то она тоже работает, но тогда уже не запускается form action