How to attach customer designs to email (Word Press)
The following is an article on having your customer's designs attached to an email.
Note: This code has been written only for Woocommerce Cart plugin with WordPress.
Kindly follow these instructions:
- Move your email template to your theme folder so you may edit it.
- Backend -> Woocommerce -> Settings -> Emails -> Select Template -> Copy file to theme.
- Remember theme template location to use in the following step.
- Place the below code at the bottom of your desired email template file (location of file remembered in above step).
- Ensure wp-content/plugins/pitchprint/uploader/files 777 permissions.
- Run a test by emailing yourself on an order, with a PitchPrint design item and the selected status you chose for your template/s.
/* PitchPrint Attachments Start*/
/*
* Delete files greater than 5 minutes old
*/
function custom_delete_old_pp_designs($dir)
{
$lifeTime = time() - 300;
foreach (glob("$dir/*.pdf") as $file) {
if (filemtime($file) < $lifeTime) unlink($file);
}
}
/*
* Saves PitchPrint items design to your server
*/
function custom_get_pp_pdf($ppPdfBase, $pId, $dest)
{
$file = $dest."/MyDesign_".time().'.pdf';
$getFile = "$ppPdfBase=$pId";
$success = copy($getFile, $file);
if ($success) return $file;
return false;
}
/*
* Returns PP Attachments for email
* And empties folder from old pp designs
*/
function custom_append_pp_designs($obj)
{
$ppFetchPDFBaseUrl = 'http://pdf.pitchprint.io?id';
$pluginUpldDir = get_home_path().'wp-content/plugins/pitchprint/uploader/files';
$data = [];
// Remove old designs from upload dir
custom_delete_old_pp_designs($pluginUpldDir);
// Fetch all PitchPrint designs in this order
foreach ($obj->get_items() as $item_id => $item) {
$meta = wc_get_order_item_meta($item_id, '_w2p_set_option');
if ($meta) {
$ppData = (strpos($meta,'%7') !== FALSE) ? json_decode(urldecode($meta)) : json_decode($meta);
if ( isset($ppData->files) ) {
foreach ($ppData->files as $file) {
$regex = "/http.*?uploader\/files/";
$result = preg_replace($regex, $pluginUpldDir, $file);
$data[] = $result;
}
} else {
$pId = $ppData->projectId;
$data[] = custom_get_pp_pdf($ppFetchPDFBaseUrl, $pId, $pluginUpldDir);
}
}
}
// Return attachments
return $data;
}
function attach_pitchprint_designs_pdf_to_email ( $attachments , $id, $object, $new ) {
return custom_append_pp_designs($object);
}
add_action( 'check_pitchprint_item_need_attach', 'custom_attach_pitchprint_designs');
/*
* Check whether we need to append the attachments.
*/
function custom_attach_pitchprint_designs($obj)
{
foreach ($obj->get_items() as $item_id => $item) {
$meta = wc_get_order_item_meta($item_id, '_w2p_set_option');
if ($meta) {
add_filter( 'woocommerce_email_attachments', 'attach_pitchprint_designs_pdf_to_email',10, 4);
return true;
}
}
}
do_action('check_pitchprint_item_need_attach', $order);
/* PitchPrint Attachments End*/