Add “Where Did You Hear About Us” option in WordPress

#Add the following code on functions.php to add “How did you find us” option in customer invoice email in WordPress

// For display and saving in order details page.
<?php
add_action( ‘add_meta_boxes’, ‘add_shop_order_meta_box’ );
function add_shop_order_meta_box() {

add_meta_box(
‘custom_column’,
__( ‘Customer Source’, ‘your_text_domain’ ),
‘shop_order_display_callback’,
‘shop_order’
);

}

function shop_order_display_callback( $post ) {

$meta = get_post_meta($post->ID,’customersource’, true);

echo ‘
<div class=”customer_sourse_area”><div class=”customer_sourse_label”>Where did you hear about us?</div></div>
‘;

if($meta){
//$value = get_post_meta( $post->ID, ‘Amouse Order Options’, true );

echo ‘
<div class=””>’.$meta.'</div>
‘;
}else{
echo ‘Not answered’;
}
echo “</div>”;
}

?>

#Add the following code in customer-source.php in the woocommerce folder

<?php

// Store a string into the variable which
// need to be Encrypted
$simple_string = $order->get_id();

// Store the cipher method
$ciphering = “AES-128-CTR”;

// Use OpenSSl Encryption method
//$iv_length = openssl_cipher_iv_length($ciphering);
$options = 0;

// Non-NULL Initialization Vector for encryption
$encryption_iv = ‘1234567891011121’;

// Store the encryption key
$encryption_key = “a2iPU6PX7eiK2Kj4”;

// Use openssl_encrypt() function to encrypt the data
$encryption = openssl_encrypt($simple_string, $ciphering,
$encryption_key, $options, $encryption_iv);

// Display the encrypted string
//echo “Encrypted: ” . $encryption . “\n”;

// Non-NULL Initialization Vector for decryption
$decryption_iv = ‘1234567891011121’;

// Store the decryption key
$decryption_key = “a2iPU6PX7eiK2Kj4”;

// Use openssl_decrypt() function to decrypt the data
$decryption = openssl_decrypt ($encryption, $ciphering,
$decryption_key, $options, $decryption_iv);

// Display the decrypted string
//echo “Decrypted: ” . $decryption;

?>

<form action=”https://amousewithahouse.com.au/how-did-you-find-us” method=”GET”>
<input type=”hidden” name=”oid” value=” <?php echo $encryption; ?> “>
<select name=”platform” style=”width: 180px;height: 45px;border: 1px solid #ccc;padding: 0 8px;”>
<option value=”Facebook”>Facebook</option>
<option value=”Instagram”>Instagram</option>
<option value=”Google search”>Google search</option>
<option value=”Google Ads”>Google Ads</option>
<option value=”Friend”>Friend</option>
<option value=”Word of Mouth”>Word of Mouth</option>
<option value=”Other”>Other</option>
</select>
<input type=”submit” style=”width: 98px;
height: 45px;
border: 1px solid #ccc;
padding: 0 8px;”>
</form>

# Next step is to create a page in wordpress with the form action url we put before so that we can catch the get value then create a wordpress template and apply the template on the page. Put the  following code on the template to process and add meta data.

<?php get_header(); ?>

<?php /* Template Name: Customer Source */ ?>

<?php
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
//
// Post Content here
//
} // end while
} // end if
?>

<?php

//require_once(‘../wp-load.php’);

global $wpdb;

//require_once(‘../wp-load.php’);

//global $wpdb;

$result = array();

if(isset($_GET[‘oid’]) && isset($_GET[‘platform’])){
if(!empty($_GET[‘oid’]) && !empty($_GET[‘platform’])){

$platform = $_GET[‘platform’];

$encryption = $_GET[‘oid’];
$ciphering = “AES-128-CTR”;
$decryption_iv = ‘1234567891011121’;
$options = 0;

// Store the decryption key
$decryption_key = “a2iPU6PX7eiK2Kj4”;

// Use openssl_decrypt() function to decrypt the data
$decryption = openssl_decrypt ($encryption, $ciphering, $decryption_key, $options, $decryption_iv);

//echo $decryption;
// Display the decrypted string
//echo “Decrypted: ” . $decryption;

//echo $_POST[‘order_id’];

$meta = get_post_meta($decryption,’customersource’,true);

//echo “Hello”.$meta;

//delete_post_meta( $decryption,’customersource’, $meta_value = ” );
if(empty($meta)){
add_post_meta( $decryption, ‘customersource’, $platform);
//update_post_meta( $decryption, ‘customersource’, ‘updated’ );
//update_post_meta( $decryption, ‘customersource’, “” );
echo “<div class=’customer_source_add_success’>Add Success</div>”;
echo “<script> var timer = setTimeout(function() { window.location=’https://amousewithahouse.com.au/’ }, 2000); </script>”;
}else{
echo “<div class=’customer_source_add_error’>Some Error Occured</div>”;
echo “<script> var timer = setTimeout(function() { window.location=’https://amousewithahouse.com.au/’ }, 2000); </script>”;
//update_post_meta( $decryption, ‘customersource’, ” );
//header(“Location: https://amousewithahouse.com.au/”);
//die();
}

} else{
echo “Failed”;
}
} else {
echo ‘Failed’;
}

 

?>

<?php get_footer(); ?>