load($template_id)) {
$uid_params = array();
$uid_params['template_id'] = $template_id;
$uid_params['dataset'] = $dataset;
$template->extension()->set('dataset', $dataset);
if ($template->extension()->verify()) {
if (array_key_exists('inline', $atts)) {
$inline = $atts['inline'] == 'true' ? 1 : 0;
$uid_params['inline'] = $inline;
}
if (array_key_exists('flatten', $atts)) {
$flatten = (int) $atts['flatten'];
$uid_params['flatten'] = $flatten;
$template->set('flatten', $flatten);
}
if (array_key_exists('format', $atts)) {
$format = $atts['format'];
$uid_params['format'] = $format;
$template->set('format', $format);
}
if (array_key_exists('password', $atts)) {
if (!array_key_exists('filter', $atts)) {
$password = $template->extension()->render($atts['password'], 'value');
} else {
$password = $atts['password'];
}
$uid_params['password'] = $password;
$template->set('password', $password);
} else {
$template->set('password', $template->extension()->render($template->get('password'), 'value'));
}
if (array_key_exists('name', $atts)) {
if (!array_key_exists('filter', $atts)) {
$name = $template->extension()->render($atts['name'], 'value');
} else {
$name = $atts['name'];
}
$uid_params['name'] = $name;
$template->set('name', $name);
} else {
$template->set('name', $template->extension()->render($template->get('name'), 'value'));
}
$entry = new Model_E2pdf_Entry();
$entry->set('entry', $uid_params);
if (!$entry->load_by_uid($entry->get('uid'))) {
$entry->save();
}
$template->fill($dataset, $entry->get('uid'));
$request = $template->render();
if (!isset($request['error']) && $entry->get('ID')) {
$tmp_dir = $this->helper->get('tmp_dir') . 'e2pdf' . md5($entry->get('uid')) . '/';
$this->helper->create_dir($tmp_dir);
if ($template->get('name')) {
$name = $template->get('name');
} else {
$name = $template->extension()->render($template->get_filename(), 'value');
}
$file_name = $name . '.pdf';
$file_path = $tmp_dir . $file_name;
file_put_contents($file_path, base64_decode($request['file']));
if (file_exists($file_path)) {
$entry->set('pdf_num', $entry->get('pdf_num') + 1);
$entry->save();
return $file_path;
}
}
}
}
return $response;
}
/**
* [e2pdf-download] shortcode
*
* @param array $atts - Shortcode attributes
*/
function e2pdf_download($atts = array()) {
$template_id = (int) $atts['id'];
$response = '';
if (!$template_id) {
return $response;
}
if (array_key_exists('dataset', $atts)) {
$dataset = $atts['dataset'];
} else {
return $response;
}
$template = new Model_E2pdf_Template();
if ($template->load($template_id)) {
$uid_params = array();
$uid_params['template_id'] = $template_id;
$uid_params['dataset'] = $dataset;
if (array_key_exists('class', $atts)) {
$classes = explode(" ", $atts['class']);
} else {
$classes = array();
}
$classes[] = 'e2pdf-download';
$template->extension()->set('dataset', $dataset);
if ($template->extension()->verify()) {
$template->extension()->set('no_filter', true);
if (array_key_exists('auto', $atts)) {
$auto = $atts['auto'] == 'true' ? 1 : 0;
} else {
$auto = $template->get('auto');
}
if ($auto) {
$classes[] = 'e2pdf-auto';
}
if (array_key_exists('inline', $atts)) {
$inline = $atts['inline'] == 'true' ? 1 : 0;
$uid_params['inline'] = $inline;
} else {
$inline = $template->get('inline');
}
if ($inline) {
$classes[] = 'e2pdf-inline';
}
if (array_key_exists('flatten', $atts)) {
$flatten = (int) $atts['flatten'];
$uid_params['flatten'] = $flatten;
}
if (array_key_exists('format', $atts)) {
$format = $atts['format'];
$uid_params['format'] = $format;
}
if (array_key_exists('button-title', $atts)) {
if (!array_key_exists('filter', $atts)) {
$title = $template->extension()->render($atts['button-title']);
} else {
$title = $atts['button-title'];
}
} elseif ($template->extension()->render($template->get('button_title')) !== '') {
$title = $template->extension()->render($template->get('button_title'));
} else {
$title = __('Download', 'e2pdf');
}
if (array_key_exists('password', $atts)) {
if (!array_key_exists('filter', $atts)) {
$password = $template->extension()->render($atts['password'], 'value');
} else {
$password = $atts['password'];
}
$uid_params['password'] = $password;
}
if (array_key_exists('name', $atts)) {
if (!array_key_exists('filter', $atts)) {
$name = $template->extension()->render($atts['name'], 'value');
} else {
$name = $atts['name'];
}
$uid_params['name'] = $name;
}
/*
* @since 0.01.33
*/
$entry = new Model_E2pdf_Entry();
$entry->set('entry', $uid_params);
if (!$entry->load_by_uid($entry->get('uid'))) {
$entry->save();
}
if ($entry->get('ID')) {
$url = esc_url(add_query_arg(array(
'page' => 'e2pdf-download',
'uid' => $entry->get('uid'),
), site_url('/')
));
$response = "{$title}";
}
}
}
return $response;
}
/**
* @since 0.01.44
*
* [e2pdf-save] shortcode
*
* @param array $atts - Shortcode attributes
*/
function e2pdf_save($atts = array()) {
$template_id = (int) $atts['id'];
$response = '';
if (!array_key_exists('apply', $atts) || !array_key_exists('dataset', $atts) || !$template_id) {
return $response;
}
$dataset = $atts['dataset'];
$template = new Model_E2pdf_Template();
if ($template->load($template_id)) {
$uid_params = array();
$uid_params['template_id'] = $template_id;
$uid_params['dataset'] = $dataset;
$template->extension()->set('dataset', $dataset);
if ($template->extension()->verify()) {
if (array_key_exists('inline', $atts)) {
$inline = $atts['inline'] == 'true' ? 1 : 0;
$uid_params['inline'] = $inline;
}
if (array_key_exists('flatten', $atts)) {
$flatten = (int) $atts['flatten'];
$uid_params['flatten'] = $flatten;
$template->set('flatten', $flatten);
}
if (array_key_exists('format', $atts)) {
$format = $atts['format'];
$uid_params['format'] = $format;
$template->set('format', $format);
}
if (array_key_exists('password', $atts)) {
if (!array_key_exists('filter', $atts)) {
$password = $template->extension()->render($atts['password'], 'value');
} else {
$password = $atts['password'];
}
$uid_params['password'] = $password;
$template->set('password', $password);
} else {
$template->set('password', $template->extension()->render($template->get('password'), 'value'));
}
if (array_key_exists('name', $atts)) {
if (!array_key_exists('filter', $atts)) {
$name = $template->extension()->render($atts['name'], 'value');
} else {
$name = $atts['name'];
}
$uid_params['name'] = $name;
$template->set('name', $name);
} else {
$template->set('name', $template->extension()->render($template->get('name'), 'value'));
}
$entry = new Model_E2pdf_Entry();
$entry->set('entry', $uid_params);
if (!$entry->load_by_uid($entry->get('uid'))) {
$entry->save();
}
$template->fill($dataset, $entry->get('uid'));
$request = $template->render();
if (isset($request['error'])) {
return false;
} else {
if ($entry->get('ID')) {
if (array_key_exists('dir', $atts)) {
$save_dir = $atts['dir'];
} else {
$tpl_dir = $this->helper->get('tpl_dir') . $template->get('ID') . "/";
$save_dir = $tpl_dir . "save/";
$this->helper->create_dir($tpl_dir);
$this->helper->create_dir($save_dir);
}
if (is_dir($save_dir) && is_writable($save_dir)) {
if ($template->get('name')) {
$name = $template->get('name');
} else {
$name = $template->extension()->render($template->get_filename(), 'value');
}
$file_name = $name . '.pdf';
$file_path = $save_dir . $file_name;
file_put_contents($file_path, base64_decode($request['file']));
if (file_exists($file_path)) {
$entry->set('pdf_num', $entry->get('pdf_num') + 1);
$entry->save();
}
}
}
}
}
}
return $response;
}
/**
* [e2pdf-view] shortcode
*
* @param array $atts - Shortcode attributes
*/
function e2pdf_view($atts = array()) {
$template_id = (int) $atts['id'];
$response = '';
$width = isset($atts['width']) ? $atts['width'] : '100%';
$height = isset($atts['height']) ? $atts['height'] : '500';
$pdf_url = isset($atts['pdf']) ? $atts['pdf'] : false;
if (array_key_exists('class', $atts)) {
$classes = explode(" ", $atts['class']);
} else {
$classes = array();
}
$classes[] = 'e2pdf-view';
if ($pdf_url) {
if (filter_var($pdf_url, FILTER_VALIDATE_URL)) {
$url = plugins_url('assets/pdf.js/web/viewer.html?file=' . urlencode($pdf_url), $this->helper->get('plugin_file_path'));
$response = "";
}
} else {
if (!$template_id) {
return $response;
}
if (array_key_exists('dataset', $atts)) {
$dataset = $atts['dataset'];
} else {
return $response;
}
$template = new Model_E2pdf_Template();
if ($template->load($template_id)) {
$uid_params = array();
$uid_params['template_id'] = $template_id;
$uid_params['dataset'] = $dataset;
$template->extension()->set('dataset', $dataset);
if ($template->extension()->verify()) {
$template->extension()->set('no_filter', true);
if (array_key_exists('inline', $atts)) {
$inline = $atts['inline'] == 'true' ? 1 : 0;
$uid_params['inline'] = $inline;
}
if (array_key_exists('flatten', $atts)) {
$flatten = (int) $atts['flatten'];
$uid_params['flatten'] = $flatten;
}
if (array_key_exists('format', $atts)) {
$format = $atts['format'];
$uid_params['format'] = $format;
}
if (array_key_exists('password', $atts)) {
if (!array_key_exists('filter', $atts)) {
$password = $template->extension()->render($atts['password']);
} else {
$password = $atts['password'];
}
$uid_params['password'] = $password;
}
if (array_key_exists('name', $atts)) {
if (!array_key_exists('filter', $atts)) {
$name = $template->extension()->render($atts['name'], 'value');
} else {
$name = $atts['name'];
}
$uid_params['name'] = $name;
}
$entry = new Model_E2pdf_Entry();
$entry->set('entry', $uid_params);
if (!$entry->load_by_uid($entry->get('uid'))) {
$entry->save();
}
if ($entry->get('ID')) {
$pdf_url = esc_url_raw(add_query_arg(array(
'page' => 'e2pdf-download',
'uid' => $entry->get('uid'),
), site_url('/')
));
$url = plugins_url('assets/pdf.js/web/viewer.html?file=' . urlencode($pdf_url), $this->helper->get('plugin_file_path'));
$response = "";
}
}
}
}
return $response;
}
function e2pdf_adobesign($atts = array()) {
$template_id = (int) $atts['id'];
$response = '';
if (!array_key_exists('apply', $atts) || !array_key_exists('dataset', $atts) || !$template_id) {
return $response;
}
$dataset = $atts['dataset'];
$template = new Model_E2pdf_Template();
if ($template->load($template_id)) {
$uid_params = array();
$uid_params['template_id'] = $template_id;
$uid_params['dataset'] = $dataset;
$template->extension()->set('dataset', $dataset);
if ($template->extension()->verify()) {
if (array_key_exists('inline', $atts)) {
$inline = $atts['inline'] == 'true' ? 1 : 0;
$uid_params['inline'] = $inline;
}
if (array_key_exists('flatten', $atts)) {
$flatten = (int) $atts['flatten'];
$uid_params['flatten'] = $flatten;
$template->set('flatten', $flatten);
}
if (array_key_exists('format', $atts)) {
$format = $atts['format'];
$uid_params['format'] = $format;
$template->set('format', $format);
}
if (array_key_exists('password', $atts)) {
if (!array_key_exists('filter', $atts)) {
$password = $template->extension()->render($atts['password'], 'value');
} else {
$password = $atts['password'];
}
$uid_params['password'] = $password;
$template->set('password', $password);
} else {
$template->set('password', $template->extension()->render($template->get('password'), 'value'));
}
if (array_key_exists('name', $atts)) {
if (!array_key_exists('filter', $atts)) {
$name = $template->extension()->render($atts['name'], 'value');
} else {
$name = $atts['name'];
}
$uid_params['name'] = $name;
$template->set('name', $name);
} else {
$template->set('name', $template->extension()->render($template->get('name'), 'value'));
}
$disable = array();
if (array_key_exists('disable', $atts)) {
$disable = explode(',', $atts['disable']);
}
$entry = new Model_E2pdf_Entry();
$entry->set('entry', $uid_params);
if (!$entry->load_by_uid($entry->get('uid'))) {
$entry->save();
}
$template->fill($dataset, $entry->get('uid'));
$request = $template->render();
if (!isset($request['error']) && $entry->get('ID')) {
$tmp_dir = $this->helper->get('tmp_dir') . 'e2pdf' . md5($entry->get('uid')) . '/';
$this->helper->create_dir($tmp_dir);
if ($template->get('name')) {
$name = $template->get('name');
} else {
$name = $template->extension()->render($template->get_filename(), 'value');
}
$file_name = $name . '.pdf';
$file_path = $tmp_dir . $file_name;
file_put_contents($file_path, base64_decode($request['file']));
if (file_exists($file_path)) {
$agreement_id = false;
$documents = array();
if (!in_array('post_transientDocuments', $disable)) {
$model_e2pdf_adobesign = new Model_E2pdf_AdobeSign();
$model_e2pdf_adobesign->set(array(
'action' => 'api/rest/v5/transientDocuments',
'headers' => array(
'Content-Type: multipart/form-data',
),
'data' => array(
'File-Name' => $file_name,
'Mime-Type' => 'application/pdf',
'File' => class_exists('cURLFile') ? new cURLFile($file_path) : '@' . $file_path
),
));
if ($transientDocumentId = $model_e2pdf_adobesign->request('transientDocumentId')) {
$documents[] = array(
'transientDocumentId' => $transientDocumentId
);
}
$model_e2pdf_adobesign->flush();
}
$documents = apply_filters('e2pdf_model_shortcode_e2pdf_adobesign_fileInfos', $documents, $atts, $template, $entry, $template->extension(), $file_path);
if (!in_array('post_agreements', $disable) && !empty($documents)) {
$output = false;
if (array_key_exists('output', $atts)) {
$output = $atts['output'];
}
$recipients = array();
if (array_key_exists('recipients', $atts)) {
$atts['recipients'] = $template->extension()->render($atts['recipients']);
$recipients_list = explode(',', $atts['recipients']);
foreach ($recipients_list as $recipient_info) {
$recipients[] = array(
'recipientSetMemberInfos' => array(
'email' => trim($recipient_info)
),
'recipientSetRole' => 'SIGNER'
);
}
}
$data = array(
'documentCreationInfo' => array(
'signatureType' => 'ESIGN',
'recipientSetInfos' => $recipients,
'signatureFlow' => 'SENDER_SIGNATURE_NOT_REQUIRED',
'fileInfos' => $documents,
'name' => $name
)
);
$data = apply_filters('e2pdf_model_shortcode_e2pdf_adobesign_post_agreements_data', $data, $atts, $template, $entry, $template->extension(), $file_path, $documents);
$model_e2pdf_adobesign = new Model_E2pdf_AdobeSign();
$model_e2pdf_adobesign->set(array(
'action' => 'api/rest/v5/agreements',
'data' => $data,
));
$agreement_id = $model_e2pdf_adobesign->request('agreementId');
$model_e2pdf_adobesign->flush();
}
$response = apply_filters('e2pdf_model_shortcode_e2pdf_adobesign_response', $response, $atts, $template, $entry, $template->extension(), $file_path, $documents, $agreement_id);
}
$this->helper->delete_dir($tmp_dir);
return $response;
}
}
}
return $response;
}
/**
* [e2pdf-format-number] shortcode
*
* @param array $atts - Shortcode attributes
* @param string $value - Value
*/
function e2pdf_format_number($atts = array(), $value = '') {
$dec_point = isset($atts['dec_point']) ? $atts['dec_point'] : '.';
$thousands_sep = isset($atts['thousands_sep']) ? $atts['thousands_sep'] : '';
$decimal = isset($atts['decimal']) ? $atts['decimal'] : false;
$explode = isset($atts['explode']) ? $atts['explode'] : '';
$implode = isset($atts['implode']) ? $atts['implode'] : '';
$new_value = array();
$value = array_filter((array) $value, 'strlen');
foreach ($value as $v) {
if ($explode && strpos($v, $explode)) {
$v = explode($explode, $v);
}
foreach ((array) $v as $n) {
$n = str_replace(array(" ", ","), array("", "."), $n);
$n = preg_replace('/\.(?=.*\.)/', '', $n);
$n = floatval($n);
if (!$decimal) {
$num = explode('.', $n);
$decimal = isset($num[1]) ? strlen($num[1]) : 0;
}
$n = number_format($n, $decimal, $dec_point, $thousands_sep);
$new_value[] = $n;
}
unset($v);
}
$new_value = array_filter((array) $new_value, 'strlen');
return implode($implode, $new_value);
}
function e2pdf_format_date($atts = array(), $value = '') {
$format = isset($atts['format']) ? $atts['format'] : get_option('date_format');
if (!$value) {
return '';
}
$value = date($format, strtotime($value));
return $value;
}
/**
* [e2pdf-format-output] shortcode
*
* @param array $atts - Shortcode attributes
* @param string $value - Value
*/
function e2pdf_format_output($atts = array(), $value = '') {
$explode = isset($atts['explode']) ? $atts['explode'] : false;
$implode = isset($atts['implode']) ? $atts['implode'] : '';
$output = isset($atts['output']) ? $atts['output'] : false;
$filter = isset($atts['filter']) ? $atts['filter'] : false;
$filters = array();
if ($filter) {
if (strpos($filter, ',')) {
$filters = explode(',', $filter);
} else {
$filters = array_filter((array) $filter, 'strlen');
}
}
$new_value = array();
$value = array_filter((array) $value, 'strlen');
foreach ($value as $v) {
if ($explode && strpos($v, $explode)) {
$v = explode($explode, $v);
}
foreach ((array) $v as $n) {
if (!empty($filters)) {
foreach ((array) $filters as $sub_filter) {
switch ($sub_filter) {
case 'trim':
$n = trim($n);
break;
case 'strip_tags':
$n = strip_tags($n);
break;
case 'strtolower':
if (function_exists('mb_strtolower')) {
$n = mb_strtolower($n);
} elseif (function_exists('strtolower')) {
$n = strtolower($n);
}
break;
case 'ucfirst':
if (function_exists('mb_strtoupper') && function_exists('mb_strtolower')) {
$fc = mb_strtoupper(mb_substr($n, 0, 1));
$n = $fc . mb_substr($n, 1);
} else if (function_exists('ucfirst') && function_exists('strtolower')) {
$n = ucfirst($n);
}
break;
case 'strtoupper':
if (function_exists('mb_strtoupper')) {
$n = mb_strtoupper($n);
} elseif (function_exists('strtoupper')) {
$n = strtoupper($n);
}
break;
case 'lines':
$n = preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $n);
break;
default:
break;
}
}
}
$new_value[] = $n;
}
unset($v);
}
if ($output) {
$search = array();
$replace = array();
foreach ($new_value as $key => $value) {
$search[] = "{" . $key . "}";
$replace[] = $value;
}
$output = str_replace($search, $replace, $output);
return preg_replace('~(?:{/?)[^/}]+/?}~s', "", $output);
} else {
return implode($implode, $new_value);
}
}
}