The following warnings occurred:
Warning [2] Undefined array key "avatartype" - Line: 783 - File: global.php PHP 8.1.31 (Linux)
File Line Function
/global.php 783 errorHandler->error
/showthread.php 26 require_once
Warning [2] Undefined array key "avatartype" - Line: 783 - File: global.php PHP 8.1.31 (Linux)
File Line Function
/global.php 783 errorHandler->error
/showthread.php 26 require_once
Warning [2] Undefined variable $newpmmsg - Line: 40 - File: global.php(841) : eval()'d code PHP 8.1.31 (Linux)
File Line Function
/global.php(841) : eval()'d code 40 errorHandler->error
/global.php 841 eval
/showthread.php 26 require_once
Warning [2] Undefined array key "style" - Line: 909 - File: global.php PHP 8.1.31 (Linux)
File Line Function
/global.php 909 errorHandler->error
/showthread.php 26 require_once
Warning [2] Undefined property: MyLanguage::$lang_select_default - Line: 5024 - File: inc/functions.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions.php 5024 errorHandler->error
/global.php 909 build_theme_select
/showthread.php 26 require_once
Warning [2] Undefined array key "additionalgroups" - Line: 7162 - File: inc/functions.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions.php 7162 errorHandler->error
/inc/functions.php 5044 is_member
/global.php 909 build_theme_select
/showthread.php 26 require_once
Warning [2] Undefined array key 1 - Line: 1415 - File: inc/functions.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions.php 1415 errorHandler->error
/inc/functions.php 1370 fetch_forum_permissions
/showthread.php 137 forum_permissions
Warning [2] Undefined array key 1 - Line: 1415 - File: inc/functions.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions.php 1415 errorHandler->error
/inc/functions.php 1380 fetch_forum_permissions
/inc/functions.php 2909 forum_permissions
/showthread.php 621 build_forum_jump
Warning [2] Undefined array key 1 - Line: 1415 - File: inc/functions.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions.php 1415 errorHandler->error
/inc/functions.php 1380 fetch_forum_permissions
/inc/functions.php 2909 forum_permissions
/showthread.php 621 build_forum_jump
Warning [2] Undefined array key 1 - Line: 1415 - File: inc/functions.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions.php 1415 errorHandler->error
/inc/functions.php 1380 fetch_forum_permissions
/inc/functions.php 2909 forum_permissions
/showthread.php 621 build_forum_jump
Warning [2] Undefined array key 1 - Line: 1415 - File: inc/functions.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions.php 1415 errorHandler->error
/inc/functions.php 1380 fetch_forum_permissions
/inc/functions.php 2909 forum_permissions
/showthread.php 621 build_forum_jump
Warning [2] Undefined array key 1 - Line: 1415 - File: inc/functions.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions.php 1415 errorHandler->error
/inc/functions.php 1380 fetch_forum_permissions
/inc/functions.php 2909 forum_permissions
/showthread.php 621 build_forum_jump
Warning [2] Undefined array key 1 - Line: 1415 - File: inc/functions.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions.php 1415 errorHandler->error
/inc/functions.php 1380 fetch_forum_permissions
/inc/functions.php 2909 forum_permissions
/showthread.php 621 build_forum_jump
Warning [2] Undefined array key "mybb" - Line: 1952 - File: inc/functions.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions.php 1952 errorHandler->error
/inc/functions_indicators.php 41 my_set_array_cookie
/showthread.php 629 mark_thread_read
Warning [2] Trying to access array offset on value of type null - Line: 488 - File: inc/db_mysqli.php PHP 8.1.31 (Linux)
File Line Function
/inc/db_mysqli.php 488 errorHandler->error
/showthread.php 722 DB_MySQLi->fetch_field
Warning [2] Undefined property: MyLanguage::$ratings_update_error - Line: 5 - File: showthread.php(732) : eval()'d code PHP 8.1.31 (Linux)
File Line Function
/showthread.php(732) : eval()'d code 5 errorHandler->error
/showthread.php 732 eval
Warning [2] Undefined array key "additionalgroups" - Line: 7162 - File: inc/functions.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions.php 7162 errorHandler->error
/inc/functions_user.php 844 is_member
/inc/functions_post.php 406 purgespammer_show
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "profilefield" - Line: 6 - File: inc/functions_post.php(474) : eval()'d code PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php(474) : eval()'d code 6 errorHandler->error
/inc/functions_post.php 474 eval
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "canonlyreplyownthreads" - Line: 660 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 660 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "showimages" - Line: 741 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 741 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "showvideos" - Line: 746 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 746 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "showimages" - Line: 784 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 784 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "additionalgroups" - Line: 7162 - File: inc/functions.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions.php 7162 errorHandler->error
/inc/functions_user.php 844 is_member
/inc/functions_post.php 406 purgespammer_show
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "profilefield" - Line: 6 - File: inc/functions_post.php(474) : eval()'d code PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php(474) : eval()'d code 6 errorHandler->error
/inc/functions_post.php 474 eval
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "canonlyreplyownthreads" - Line: 660 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 660 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "showimages" - Line: 741 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 741 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "showvideos" - Line: 746 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 746 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "additionalgroups" - Line: 7162 - File: inc/functions.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions.php 7162 errorHandler->error
/inc/functions_user.php 844 is_member
/inc/functions_post.php 406 purgespammer_show
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "profilefield" - Line: 6 - File: inc/functions_post.php(474) : eval()'d code PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php(474) : eval()'d code 6 errorHandler->error
/inc/functions_post.php 474 eval
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "canonlyreplyownthreads" - Line: 660 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 660 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "showimages" - Line: 741 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 741 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "showvideos" - Line: 746 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 746 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "showimages" - Line: 784 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 784 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "additionalgroups" - Line: 7162 - File: inc/functions.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions.php 7162 errorHandler->error
/inc/functions_user.php 844 is_member
/inc/functions_post.php 406 purgespammer_show
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "profilefield" - Line: 6 - File: inc/functions_post.php(474) : eval()'d code PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php(474) : eval()'d code 6 errorHandler->error
/inc/functions_post.php 474 eval
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "canonlyreplyownthreads" - Line: 660 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 660 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "showimages" - Line: 741 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 741 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "showvideos" - Line: 746 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 746 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "additionalgroups" - Line: 7162 - File: inc/functions.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions.php 7162 errorHandler->error
/inc/functions_user.php 844 is_member
/inc/functions_post.php 406 purgespammer_show
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "profilefield" - Line: 6 - File: inc/functions_post.php(474) : eval()'d code PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php(474) : eval()'d code 6 errorHandler->error
/inc/functions_post.php 474 eval
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "canonlyreplyownthreads" - Line: 660 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 660 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "showimages" - Line: 741 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 741 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "showvideos" - Line: 746 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 746 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "additionalgroups" - Line: 7162 - File: inc/functions.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions.php 7162 errorHandler->error
/inc/functions_user.php 844 is_member
/inc/functions_post.php 406 purgespammer_show
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "profilefield" - Line: 6 - File: inc/functions_post.php(474) : eval()'d code PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php(474) : eval()'d code 6 errorHandler->error
/inc/functions_post.php 474 eval
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "canonlyreplyownthreads" - Line: 660 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 660 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "showimages" - Line: 741 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 741 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "showvideos" - Line: 746 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 746 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "additionalgroups" - Line: 7162 - File: inc/functions.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions.php 7162 errorHandler->error
/inc/functions_user.php 844 is_member
/inc/functions_post.php 406 purgespammer_show
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "profilefield" - Line: 6 - File: inc/functions_post.php(474) : eval()'d code PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php(474) : eval()'d code 6 errorHandler->error
/inc/functions_post.php 474 eval
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "canonlyreplyownthreads" - Line: 660 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 660 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "showimages" - Line: 741 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 741 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "showvideos" - Line: 746 - File: inc/functions_post.php PHP 8.1.31 (Linux)
File Line Function
/inc/functions_post.php 746 errorHandler->error
/showthread.php 1070 build_postbit
Warning [2] Undefined array key "invisible" - Line: 1506 - File: showthread.php PHP 8.1.31 (Linux)
File Line Function
/showthread.php 1506 errorHandler->error
Warning [2] Undefined variable $threadnotesbox - Line: 30 - File: showthread.php(1533) : eval()'d code PHP 8.1.31 (Linux)
File Line Function
/showthread.php(1533) : eval()'d code 30 errorHandler->error
/showthread.php 1533 eval
Warning [2] Undefined variable $addremovesubscription - Line: 79 - File: showthread.php(1533) : eval()'d code PHP 8.1.31 (Linux)
File Line Function
/showthread.php(1533) : eval()'d code 79 errorHandler->error
/showthread.php 1533 eval



FORUMS


The Form Tools forums are no longer active, but the old posts have been archived here. Please see the Help page on how to get help / report issues.

Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Integrating A MailChimp Newsletter Option
#1
.
.
Instructions for Integrated MailChimp Newsletter Signup to a FormTools Form

Note: This set of instructions does not use MailChimps double opt-in option. With a little research using the links provided at the end, I'm confident that someone will be able to implement that as an additional feature and post a reply here.

2013-08-22
UPDATE: I am still using Mail Chimp API v1.3.2 for this post.
UPDATE: Added "OPTIN_TIME" code. Added resource to bottom.
UPDATE: Added step 3a (to verify merge tags).


1) Download the proper API Wrapper for MailChimp.
For PHP forms, scroll to the PHP scetion of the following link and download MCAPI v{current}. Make sure you are using the most up-to-date version. I suggest putting this in a well-organized folder structure, so you'll understand what it is when you look at it next year.

(ie: Design Work\FormTools\MailChimp API Addition\MailChimp API Wrappers\MCAPI v1.3.2 (PHP)\PHP wrapper full\{extracted files})

MailChimp API Wrappers: http://apidocs.mailchimp.com/api/downloads/#php


2) Upload the MailChimp API to your web site.
In your web site structure, add a new directory inside the FormTools directory, called /mailchimp/. Upload the MCAPI.class.php file from Step 1 to this new directory.

(ie: path/to/formtools/mailchimp/MCAPI.class.php)


3) Add the MailChimp API code to your form.
I'm going to assume that you're using server-side (PHP) validation on your external form and that you already have a working form, so look for the following IF statement in your forms PHP:

PHP Code:
<?php
  
if (empty($errors))
  {
    
$params = array(
      
"submit_button" => "submit"// Change to name attribute of submit button
      
"next_page" => "http://www.yourdomain.com/thanks.php",
      
"form_data" => $_POST,
      
"namespace" => "you-should-do-this"// http://docs.formtools.org/api/?page=namespaces
      
"finalize" => true
    
);
    
ft_api_process_form($params);
  }
?>

Now you're going to add the following chunk of code just above the line with "$params = array("

Note: make sure you read all the comments in this code. Update fields to match your own form field name attributes. The following is just an example.

PHP Code:
<?php
    
// SUBSCRIBE TO MAILING LIST OPTION - ADD TO MAILCHIMP USING API
    
if (!empty($_POST['newsletter_input_name_attribute'])) 
    {
        
// Include Mailchimp API class
        
require_once('../formtools/mailchimp/MCAPI.class.php');

        
// Your API Key: http://admin.mailchimp.com/account/api/
        
$api = new MCAPI('Your-API-Key-Here');

        
// Your List Unique ID: http://admin.mailchimp.com/lists/ (Click "settings")
        
$list_id "Your-List-ID-Here";

        
// Variables in your form that match up to variables on your subscriber
        // list. You might have only a single 'name' field, no fields at all, or more
        // fields that you want to sync up.
        
$optinTIME date('Y-m-d H:i:s'); // Sample field - depends on your list, added 2013-08-22
        
$merge_vars = array(
            
'FNAME' => $_POST['first_name'],
            
'LNAME' => $_POST['last_name'],
            
'EMAIL' => $_POST['email_confirmation'],
            
'OPTIN_TIME' => $optinTIME//Added 2013-08-22
            
'OPTIN_IP' => $_SERVER['REMOTE_ADDR'//uses the user's IP address, but MC still says "you added this person"
        
);

        
// SUBSCRIBE TO LIST
        
if ( $api->listSubscribe($list_id$_POST['email_confirmation'], $merge_vars) === true ){
        
$mailchimp_result 'Success! Check your email to confirm sign up.';
        } else {
        
$mailchimp_result 'Error: ' $api->errorMessage;
        }
    }
?>

You're end result should look something like this:

PHP Code:
<?php
require_once("../formtools/global/api/api.php");
$fields ft_api_init_form_page(#, "live", "namespace");
$errors = array();
if (isset(
$_POST['submit']))
{
  
$rules = array();
  
$rules[] = "required,first_name,Please enter your FIRST NAME.";
  
$rules[] = "required,last_name,Please enter your LAST NAME.";
  
$rules[] = "required,address,Please enter your ADDRESS.";
  
$rules[] = "required,city,Please enter your CITY.";
  
$rules[] = "required,state,Please enter your STATE.";
  
$rules[] = "required,zip,Please enter your ZIP CODE.";
  
$rules[] = "required,phone,Please enter your PHONE NUMBER.";
  
$rules[] = "required,email,Please enter your EMAIL ADDRESS.";
  
$rules[] = "valid_email,email,Please enter a valid EMAIL ADDRESS.";
  
$rules[] = "required,email_confirmation,Please confirm your EMAIL ADDRESS.";
  
$rules[] = "valid_email,email_confirmation,Please enter a valid EMAIL ADDRESS.";
  
$rules[] = "same_as,email,email_confirmation,Please ensure the email addresses you entered are the same.";
  
$errors validate_fields($_POST$rules);
   
  
// no errors - great! Now we process the page. The ft_api_process_form does
  // the job of both updating the database and redirecting to the next page
  
if (empty($errors))
  {
    
// SUBSCRIBE TO MAILING LIST OPTION - ADD TO MAILCHIMP USING API
    
if (!empty($_POST['newsletter_input_name_attribute']))
    {
        
// Include Mailchimp API class
        
require_once('../formtools/mailchimp/MCAPI.class.php');

        
// Your API Key: http://admin.mailchimp.com/account/api/
        
$api = new MCAPI('Your-API-Key-Here');

        
// Your List Unique ID: http://admin.mailchimp.com/lists/ (Click "settings")
        
$list_id "Your-List-ID-Here";

        
// Variables in your form that match up to variables on your subscriber
        // list. You might have only a single 'name' field, no fields at all, or more
        // fields that you want to sync up.
        
$optinTIME date('Y-m-d H:i:s');
        
$merge_vars = array(
            
'FNAME' => $_POST['first_name'],
            
'LNAME' => $_POST['last_name'],
            
'EMAIL' => $_POST['email_confirmation'],
            
'OPTIN_TIME' => $optinTIME,
            
'OPTIN_IP' => $_SERVER['REMOTE_ADDR']
        );

        
// SUBSCRIBE TO LIST
        
if ( $api->listSubscribe($list_id$_POST['email_confirmation'], $merge_vars) === true ){
            
$mailchimp_result 'Success! Check your email to confirm sign up.';
        } else {
            
$mailchimp_result 'Error: ' $api->errorMessage;
        }
    }
  
    
$params = array(
      
"submit_button" => "submit_button_name_attribute",
      
"next_page" => "http://www.yourdomain.com/thanks.php",
      
"form_data" => $_POST,
      
"namespace" => "you-should-do-this",
      
"finalize" => true
    
);
    
ft_api_process_form($params);
  }
  
// it failed validation. Update $fields with the latest contents of the form data
  
else 
  {
    
$fields array_merge($_SESSION["namespace"], $_POST);
  }
}
?>


3a) Verify your merge tags are correct in MailChimp
Login to your Mailchimp account and view the list you want to use for this form. Select the Settings Menu and choose "List fields and *|MERGE|* tags". Verify that the tags are equal to your PHP code. (Eg: The "First Name" field label should have FNAME as the merge tag, if FNAME is in the PHP code).


4) Add your unique MailChimp API Key and List ID.
All that's left is to put in your own unique API key and List ID. Here are the instructions for finding those keys in your own MailChimp account:

Where can I find my API Key?: http://kb.mailchimp.com/article/where-ca...my-api-key

How can I find my List ID?: http://kb.mailchimp.com/article/how-can-...my-list-id

Keeping your API key secure.: http://kb.mailchimp.com/article/keeping-...key-secure


5) Test the new MailChimp integration.
You can test this out by submitting the live form with the proper input for "signing up" and then checking your MailChimp subscriber list to make sure you were added. If possible, I recommend using the double opt-in feature. It's just not something I coded, because it wasn't requested of my client at the time.


Resources:
- Add a Subscribe to MailChimp Newsletter Option on Your Contact Form in 5 Minutes:
http://www.joshuawinn.com/subscribe-to-m...tact-form/

- Official Example Code for MailChimp API v1.3 - listSubscribe() method:
http://apidocs.mailchimp.com/api/1.3/lis...e.func.php

- Example code for OPTIN_TIME provided by adamdehaven's answer:
http://stackoverflow.com/questions/15772...-mailchimp
Not a FT employee, just a FT user lending a hand. If I've been helpful, please rate.

[Image: giraffe_long_85.gif]
Reply
#2
Brandon,

This is awesome!! Thanks so much for posting this. We have numerous request from users on how to integrate with list management systems like MailChimp. I'm sure they will find this very helpful.

Cheers,

Joe
Reply
#3
I added some stuff today (see Updates at top). I will probably need to either create a duplicate thread or update this one in the coming months as Mailchimp is now using an entirely new API (2.0.2). Hopefully they don't EOL the 1.3.2 API anytime soon, because I really don't have time to re-learn everything (especially since I don't speak PHP very well).

Example: it took me ALL DAY to research, test and implement these changes for my own forms. Mostly because I'm not very good with PHP.
Not a FT employee, just a FT user lending a hand. If I've been helpful, please rate.

[Image: giraffe_long_85.gif]
Reply
#4
Awesome! Thanks so much for sharing!

Cheers,

Joe
Reply
#5
To sending email in bulk you must need the best tool which name is mail champ and it gives the free bulk email to send in one time. So you must check the essaygeeks review so that it will mike you more happy and active.
Reply
#6
Whenever you try to open new site or forum, you have to fill up the form that is the basic requirement. Although I suggest that vape shops in lahore will guide you according to your needs and demands as well.
Reply
#7
Tony alien is implied for the struggle and all tips for the factors. All the joys of the tony and Nals certification medical in the simple methods for the guys. The base is counted for the approval of the target for the terms and themes.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)