Subscriptions Addon is not working in Expression Engine - php

I purchased subscription addon from here, but its not working I have successfully installed it and its showing in my admin panel but when i write below code its not showing anything to me on my page.
{exp:subs:subscribe register_member="yes" plan="{segment_3}" payment_method="stripe" return="/account/subscription/%SUBS_HASH%"}
<h1>Subscribe to: {subs:plan:label}</h1>
<p>
Every <strong>{subs:plan:recurring_interval_count} {subs:plan:recurring_interval}</strong> {subs:plan:recurring_amount} {subs:plan:currency}
</p>
<hr>
{if subs:total_errors}
<ul class="errors">
{subs:form_errors}
<li>{subs:error}</li>
{/subs:form_errors}
</ul>
{/if}
<h3>Credit Card</h3>
<label>Credit Card Number</label>
<input name="card_number" type="text" value="{subs:card_number}">
<label>Name on card</label>
<input name="card_name" type="text" value="{subs:card_name}">
<label>Expires</label>
<select name="card_exp_month">{subs:month_options}</select>
<select name="card_exp_year">{subs:year_options}</select>
<label>Security Code</label>
<input name="card_cvc" type="text" value="{subs:card_cvc}" size="5">
<button type="submit">Subscribe</button>
{/exp:subs:subscribe}
I used their example code you can find it here.
please help me thanks in advance.

Your page is showing blank because page is not getting {segment_3} i.e. plan i hope you have not create any plan or if created then you have not passed them as {segment_3}. To test this thing use below code it will be helpful for you.
{exp:subs:subscribe register_member="yes" plan="gold" payment_method="stripe" return="/account/"}
<h1>Subscribe to: {subs:plan:label}</h1>
<p>
Every <strong>{subs:plan:recurring_interval_count} {subs:plan:recurring_interval}</strong> {subs:plan:recurring_amount} {subs:plan:currency}
</p>
<hr>
{if subs:total_errors}
<ul class="errors">
{subs:form_errors}
<li>{subs:error}</li>
{/subs:form_errors}
</ul>
{/if}
{if logged_out}
<h3>User Account</h3>
<label>Username</label>
<input type="text" name="username" value="">
<label>Email</label>
<input type="text" name="email" value="">
<label>Password</label>
<input type="password" name="password" value="">
<label>Password Confirm</label>
<input type="password" name="password_confirm" value="">
{/if}
<h3>Credit Card</h3>
<label>Credit Card Number</label>
<input name="card_number" type="text" value="{subs:card_number}">
<label>Name on card</label>
<input name="card_name" type="text" value="{subs:card_name}">
<label>Expires</label>
<select name="card_exp_month">{subs:month_options}</select>
<select name="card_exp_year">{subs:year_options}</select>
<label>Security Code</label>
<input name="card_cvc" type="text" value="{subs:card_cvc}" size="5">
<button type="submit">Subscribe</button>
{/exp:subs:subscribe}
make a plan named gold or abc whatever you want must put the same name at plan="plan_name" at the first line you can see it and remember for Visa cards it requires some more fields you may get fields error for this you have to use that fields you can find those fields on devdemon website.
enjoy !!!

Related

Not all options displayed on form

I'm working on my webservice (table) and indeed I can edit, add and delete some records with php.
If I want to add some records I got the button "add blood bank member" and this shows up a formula.
My problem
If I open the formula not all options will be shown. That means that I can see the gender, age but I do not see the first options of the formula like firstname and so on.
What I did
I thought about a CSS problem and saw on the file that the not displayed forms got the following input class:
<input class="uk-input">
I then changed in CSS the color and background-color of uk-input but it did not help.
Here is the complete form:
<h2 class="uk-modal-title">ADD Blood Bank Member</h2>
<form method="post" action="" enctype="multipart/form-data">
<div class="uk-margin">
<input class="uk-input" type="text" placeholder="First Name" name="first" required>
</div>
<div class="uk-margin">
<input class="uk-input" type="text" placeholder="Last Name" name="last" required>
</div>
<div class="uk-margin">
<input class="uk-input" type="text" placeholder="Phone Number" name="phone" required>
</div>
<div class="uk-margin">
<input class="uk-input" type="text" placeholder="Age" name="age" required>
</div>
<div class="uk-margin">
Gender<select class="uk-select" name="gender" required>
<option selected>Male</option>
<option>Female</option>
</select>
</div>
And here is an image of the formula:
What's wrong with this formula?
You can try to use JS to detect if the gender and blood group input is empty or not. First set first name last name and phone display is none, then if the input of gender and blood group is not empty then set the first name last name and phone number's display as inline-block.

html form-- need help having new input area populate if radio button is clicked

I am making a basic new customer database with mysql and php. I would like when people click on the radio button"different mailing address" for another couple of input fields to appear for the mailing address. Im not quite sure how to handle this with inputs and not variables. Is there a way to do an if statement here is my html form code below
<form method="POST" action="insert.php">
<fieldset>
<legend>New Customer data</legend>
<label>Complete Below</label>
<div class="controls controls-row">
<input class="span4" name="firstname" type="text" placeholder="First name">
<input class="span3" name="lastname" type="text" placeholder="Last Name">
<input class="span3" name="phone" type="text" placeholder="Phone">
</div>
<div class="controls controls-row">
<input class="span4" name="address" type="text" placeholder="Address">
<input class="span2" name="city" type="text" placeholder="City">
<input class="span1" name="state" type="text" placeholder="State">
</div>
<div class="controls controls-row">
<input class="span4" name="zip" type="text" placeholder="Zip Code">
<input class="span2" name="email" type="text" placeholder="Email">
<input class="span2" name="ccemail" type="text" placeholder="cc email">
</div>
<span class="help-block">When is the customers due date monthly</span>
<label class="radio">
<input type="radio" name="duedate" id="optionsRadios1" value="1" checked>
1st of the month</label>
<label class="radio">
<input type="radio" name="duedate" id="optionsRadios2" value="15">
15th of the month
</label>
<span class="help-block">Mailing address</span>
<label class="radio">
<input type="radio" name="mailingaddress" id="optionsRadios3" value="1" checked>
Check if mailing address is the same as the service address
</label>
<label class="radio">
<input type="radio" name="mailingaddress" id="optionsRadios4" value="0">
Check if mailing address is different
</label>
<button type="submit" class="btn btn-primary">Submit</button>
</fieldset>
</form>
Using jQuery, have two inputs that are initially hidden. Once the user checks the box, '$.show()' on those two inputs. Id have a div containing two inputs, and just show or hide the div depending on whether the box is checked or not
you can try this.
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" >
</script>
<script>
$(document).ready(function(){
$("#checkme").on('change',function(){
if($("#checkme").is(":checked")){
$("input#myemail").fadeIn();
}else{
$("input#myemail").fadeOut();
}
});
});
</script>
</head>
<body>
show: <input type="checkbox" id="checkme" /><br />
<input type="text" id="myemail" hidden />
</body>
</html>

Receive form data on email

How may I get data of this form to be received in an email?
<form class="pa">
<fieldset>
<label>Name <em>*</em></label>
<input type="text" placeholder="">
<label>Email <em>*</em></label>
<input type="text" placeholder="">
<label>Age <em>*</em></label>
<input type="text" placeholder="">
<label>Phone <em>*</em></label>
<input type="text" placeholder="">
<label>Zip Code <em>*</em></label>
<input type="text" placeholder="">
<a class="submit pa" href="#"><img src="wp-content/themes/child/img/submit.png"</a>
</fieldset>
</form>
You'll need a server-side script to accept the form data, and send an email with it. You can do this PHP and several other languages. Judging by your sample code you have WordPress, so you might look into the ContactForm plugin.
wrap your input's with something like
<form class="pa" action="yourscript.php" method="post">
.
.
<label for="name">Name <em>*</em></label>
<input type="text" placeholder="" id="name" name="name">
.
<input type="submit" value="Submit" />
<!-- remove the a tag because that won't submit your form data or use type="image" -->
<input type="image" src="wp-content/themes/child/img/submit.png" />
</form>
then use $_POST['name'] to retrieve the value
you have to add name='' to each inputs to have them sent to your script eg <input type="text" id="name" name="name"> and they have to be different otherwise they might get overridden.
also your labels will need the for= to be useable which uses the id of the input eg <label for="name">Name <em>*</em></label>

Passing form data from one web page to another with PHP

i found few similar questions here but from answers i didn't get the whole picture of how should work.
I have a subscription form in a page:
<form method="post" action="index.php/register">
<fieldset>
<input type="text" id="first_name" name="first_name" />
<input type="text" id="last_name" name="last_name" />
<input type="text" id="email" name="email" />
<input type="text" id="address" name="address" />
<input id="submit" type="submit" value=">>" />
</fieldset>
</form>
when a user a user click the submit button is lead to a page with the full registering form, where i need to have few fields populated with the data sent from previous page form. this is a preview of few fields from the form of the second page:
<form id="register" name="form1" method="post" action="send_contact.php">
<fieldset>
<li><label>*First Name</label>
<input type="text" id="first_name" name="first_name" />
</li>
<li>
<label>*Last Name</label>
<input type="text" id="last_name" name="last_name" />
</li>
<li>
<label>*Email</label>
<input type="text" id="email" name="email" />
</li>
<li>
<label>*Confirm Email</label>
<input type="text" id="confirm-email" name="confirm_email" />
</li>
<li>
<label>Street Address</label>
<input type="text" id="address" name="address" />
<li class="full-width">
<input id="submit" type="submit" value="Register" />
</li>
</fieldset>
</form>
the php is not my strong point, so if you can be more detailed in answer is great for me.
thanks!
I would say for security reasons, do not use Get method "$_GET[]" as people described, keep POST as you have it.
All you need to do on register/ page is get all the values passed on using the POST method and populate them into your HTML. So the second form should look like:
<form id="register" name="form1" method="post" action="send_contact.php">
<fieldset>
<li><label>First Name</label>
<input type="text" id="first_name" name="first_name" value="<?=$_POST[first_name]?>" />
</li>
<li>
<label>*Last Name</label>
<input type="text" id="last_name" name="last_name" value="<?=$_POST[last_name]?>" />
</li>
<li>
<label>*Email</label>
<input type="text" id="email" name="email" value="<?=$_POST[email]?>" />
</li>
<li>
<label>*Confirm Email</label>
<input type="text" id="confirm-email" name="confirm_email" />
</li>
<li>
<label>Street Address</label>
<input type="text" id="address" name="address" value="<?=$_POST[address]?>" />
<li class="full-width">
<input id="submit" type="submit" value="Register" />
</li>
</fieldset>
</form>
Above, I am using shorthand version of "echo" and php tags, if you do not have that enabled under php.ini, please change "" to "; ?>. Also, script will not populate "confirm" email as I assume you would like the user to retype that.
That should do it.
There are basically two methods
Store the values of the first form in a cookie, and the process code can retrieve the values from the cookie
make the form action 'Get' so that the data is passed on to the next page.
You can use the $_POST values from the first form in the page handling the submit of the first form and print them in the new form as:
<?php
echo '<input type="text" id="email" name="email" value="' . htmlentities($_POST['email']) . '"/>
?>
<form method="post" action="register.php">
<fieldset>
<input type="text" id="first_name" name="first_name" />
<input type="text" id="last_name" name="last_name" />
<input type="text" id="email" name="email" />
<input type="text" id="address" name="address" />
<input id="submit" type="submit" value=">>" />
</fieldset>
</form>
register.php
<form id="register" name="form1" method="post" action="send_contact.php">
<fieldset>
<li><label>*First Name</label>
<input type="text" value="<?php echo $_POST['first_name'];?>" id="first_name" name="first_name" />
</li>
<li>
<label>*Last Name</label>
<input type="text" value="<?php echo $_POST['last_name'];?>" id="last_name" name="last_name" />
</li>
<li>
<label>*Email</label>
<input type="text" value="<?php echo $_POST['email'];?>" id="email" name="email" />
</li>
<li>
<label>*Confirm Email</label>
<input type="text" id="confirm-email" name="confirm_email" />
</li>
<li>
<label>Street Address</label>
<input type="text" value="<?php echo $_POST['address'];?>" id="address" name="address" />
<li class="full-width">
<input id="submit" type="submit" value="Register" />
</li>
</fieldset>
</form>
Finally service the post in send_contact.php as you wish

PHP Form Sending Information to Limbo!

I was told my client's quote form has not been generating very many emails. I have learned that although the form brings you to a confirmation page, the information never reaches the recipient.
I have altered the code so it goes to my office email for testing purposes. If I post code for the form elements below, would someone be able to spot what the problem might be?
Thank you very much!
Link to the quote page is http://autoglass-plus.com/quote.php
First is the form itself:
<form id="quoteForm" name="form" action="form/index.php" method="post">
<fieldset>
<p> <strong>Contact Information:</strong><br />
</p>
<div>
<label for="firstname">First Name:<br />
</label>
<input type="text" size="30" name="firstname" class="txt" id="firstname" />
</div>
<div>
<label for="lastname">Last Name:<br />
</label>
<input type="text" size="30" name="lastname" class="txt" id="lastname" />
</div>
<div>
<label for="address">Address:<br />
</label>
<input type="text" size="30" name="address" class="txt" id="address" />
</div>
<div>
<label for="city">City:<br />
</label>
<input type="text" size="30" name="city" class="txt" id="city" />
</div>
<div>
<label for="state">State:<br />
</label>
<input type="text" size="30" name="state" class="txt" id="state" />
</div>
<div>
<label for="zip">Zip:<br />
</label>
<input type="text" size="30" name="zip" class="txt" id="zip" />
</div>
<div>
<label for="label">Phone:<br />
</label>
<input type="text" size="30" name="phone" class="txt" id="label" />
</div>
<div>
<label for="email">Email:<br />
</label>
<input type="text" size="30" name="email" class="txt" id="email" />
</div>
<p><br />
<b>Insurace Information</b></p>
<p><i>Auto Glass Plus in an Approved Insurance Vendor. Insurance claims require additional information that we will request when we contact you for your quote.</i></p>
<br />
<div>
<input type="checkbox" name="insurance" value="yes" />
Check here if this is an insurance claim.<br />
<label for="year">Insurance Provider:<br />
</label>
<input type="text" size="30" name="provider" class="txt" id="provider" />
</div>
<p><br />
<b>Vehicle Information:</b><br />
</p>
<div>
<label for="year">Vehicle Year :<br />
</label>
<input type="text" size="30" name="year" class="txt" id="year" />
</div>
<div>
<label for="make">Make: </label>
<br />
<input type="text" size="30" name="make" class="txt" id="make" />
</div>
<div>
<label for="model">Model:</label>
<br />
<input type="text" size="30" name="model" class="txt" id="model" />
</div>
<div>
<label for="body">Body Type:<br />
</label>
<select name="body" id="body">
<option>Select One</option>
<option value="2 Door Hatchback">2 Door Hatchback</option>
<option value="4 Door Hatchback">4 Door Hatchback</option>
<option value="2 Door Sedan">2 Door Sedan</option>
<option value="4 Door Sedan">4 Door Sedan</option>
<option value="Station Wagon">Station Wagon</option>
<option value="Van">Van</option>
<option value="Sport Utility">Sport Utility</option>
<option value="Pickup Truck">Pickup Truck</option>
<option value="Other Truck">Other Truck</option>
<option value="Recreational Vehicle">Recreational Vehicle</option>
<option value="Other">Other</option>
</select>
</div>
<p><b><br />
Glass in Need of Repair:</b><br />
</p>
<div>
<input type="checkbox" name="repairs" value="Windshield" />
Windshield<br />
<input type="checkbox" name="repairs" value="Back Glass" />
Back Glass<br />
<input type="checkbox" name="repairs" value="Driver’s Side Window" />
Side Window*<br />
<input type="checkbox" name="repairs" value="Chip Repair" />
Chip Repair<br />
<input type="checkbox" name="repairs" value="Other" />
Other </div>
<p><strong>*Important:</strong> For side glass, please indicate the specific window that needs replacement <i>(e.g. passenger side rear door or driver side vent glass)</i>, and any tinting color preference in the <strong>Describe Damage </strong> field.</p>
<p><br />
<b>Describe Damage</b></p>
<div>
<textarea rows="6" name="damage" id="damage" cols="37" class="txt"></textarea>
</div>
<input type="hidden" name="thanks" value="../thanks.php" />
<input type="hidden" name="required_fields" value="firstname, lastname, email, phone" />
<input type="hidden" name="html_template" value="testform.tpl.html" />
<input type="hidden" name="mail_template" value="testmail.tpl.txt" />
<div class="submit">
<center>
<input type="submit" value="Submit Form" name="Submit" id="Submit" />
</center>
</div>
</fieldset>
</form>
Then it sends to a file named index.php inside the "form" folder:
<?php
$script_root = './';
$referring_server = 'www.wmsgroup.com, wmsgroup.com, scripts';
$allow_empty_referer = 'yes'; // (yes, no)
$language = 'en'; // (see folder 'languages')
$ip_banlist = '';
$ip_address_count = '0';
$ip_address_duration = '48';
$show_limit_errors = 'yes'; // (yes, no)
$log_messages = 'no'; // (yes, no)
$text_wrap = '65';
$show_error_messages = 'yes';
$attachment = 'no'; // (yes, no)
$attachment_files = 'jpg, gif,png, zip, txt, pdf, doc, ppt, tif, bmp, mdb, xls, txt';
$attachment_size = 100000;
$path['logfile'] = $script_root . 'logfile/logfile.txt';
$path['upload'] = $script_root . 'upload/'; // chmod 777 upload
$path['templates'] = $script_root . 'templates/';
$file['default_html'] = 'testform.tpl.html';
$file['default_mail'] = 'testmail.tpl.txt';
/*****************************************************
** Add further words, text, variables and stuff
** that you want to appear in the templates here.
** The values are displayed in the HTML output and
** the e-mail.
*****************************************************/
$add_text = array(
'txt_additional' => 'Additional', // {txt_additional}
'txt_more' => 'More' // {txt_more}
);
/*****************************************************
** Do not edit below this line - Ende der Einstellungen
*****************************************************/
/*****************************************************
** Send safety signal to included files
*****************************************************/
define('IN_SCRIPT', 'true');
/*****************************************************
** Load formmail script code
*****************************************************/
include($script_root . 'inc/formmail.inc.php')
?>
There is also formail.inc.php, testform.tpl.php, testform.tpl.text and then the confirmation page, thanks.php
I want to know how these all work together and what the problem could be.
Your form appears to be using the GentleSource.com Form Mail package. I suggest starting from scratch with a fresh download of their source zip or tar.gz files in a subdirectory. Then run through their installation instructions, test it. Then get it customized in the way your prior form worked.
This is in response to your question "how these all work together".
The user enters information on quote.php page. When the page is submitted, it is sent to form/index.php for processing. This file does some checks and formats the information entered two ways, one way for html email using the template testform.tpl.php and a second way for text email using the form testform.tpl.text. The information is then passed to formmail.inc.php which sends the email and then to thanks.php which displays the response to the user.
What the problem could be? Look at the formmail.inc.php file and make sure that it is properly configured for your server and php installation.
You should make sure that the e-mail addresses in the mail template mail.tpl.txt have the correct format. E-mail addresses should be in angle brackets:
From: <visitor#example.com>
If you're using the fields firstname and lastname, they need to be in quotes:
From: "{firstname} {lastname}" <vistor#example.com>
Other possibilities, why the script won't send e-mails: Windows server with no MTA. Mails get caught by a spam filter somewhere on the way.
You should test if the server can even send e-mails:
<?php
mail('your-email#example.com', 'Test-Subject', 'Test-Message');
?>

Categories