Current Path : /storage/v11800/vishudhanandji/public_html/wp-content/plugins/metform/core/entries/ |
Linux v11800 5.3.0-1023-aws #25~18.04.1-Ubuntu SMP Fri Jun 5 15:19:18 UTC 2020 aarch64
|
Current File : /storage/v11800/vishudhanandji/public_html/wp-content/plugins/metform/core/entries/meta-data.php |
<?php
namespace MetForm\Core\Entries;
defined('ABSPATH') || exit;
#[\AllowDynamicProperties]
class Meta_Data
{
private $browser_data = null;
private $file_meta_data = null;
private $form_id;
private $form_data;
private $form_settings;
private $fields;
public function __construct()
{
$this->cpt = new Cpt();
add_action('save_post', [$this, 'store_form_data_cmb']);
add_action('add_meta_boxes', [$this, 'add_form_id_cmb']);
add_action('add_meta_boxes', [$this, 'add_form_data_cmb']);
add_action('add_meta_boxes', [$this, 'add_browser_data_cmb']);
add_action('add_meta_boxes', [$this, 'add_file_upload_cmb']);
add_action('admin_init', [$this, 'show_hide_payment_woo_meta_box']);
}
/**
* @description - checks if the post has any data of payment methods and woocommerce checkout.
* Based on the data it shows/hides the payment methods and woocommerce checkout meta box.
* @reference - https://prnt.sc/TJSnTkhK4hWy
*/
function show_hide_payment_woo_meta_box()
{
$post_id = isset($_GET['post']) ? sanitize_text_field(wp_unslash($_GET['post'])) : ''; //phpcs:ignore WordPress.Security.NonceVerification -- Nonce can't be added in CPT edit page URL
$getPaymentStatus = get_post_meta($post_id, 'metform_entries__payment_status', true);
$getPaymentInvoiceStatus = get_post_meta($post_id, 'metform_entries__payment_invoice', true);
if($getPaymentStatus || $getPaymentInvoiceStatus){
add_action('add_meta_boxes', [$this, 'add_form_payment_status_cmb']);
}
$getWooCheckoutStatus = get_post_meta($post_id, 'mf_woo_order_id', true);
if($getWooCheckoutStatus){
add_action('add_meta_boxes', [$this, 'add_woo_payment_status_cmb']);
}
}
function add_form_id_cmb()
{
add_meta_box(
'metform_entries__form_id',
esc_html__('Info', 'metform'),
[$this, 'show_form_id_cmb'],
$this->cpt->get_name(),
'side',
'high'
);
}
function show_form_id_cmb($post)
{
wp_nonce_field('meta_nonce', 'meta_nonce');
$this->form_id = get_post_meta($post->ID, 'metform_entries__form_id', true);
// get fields by form id for further use
$this->fields = Action::instance()->get_fields($this->form_id);
$form_title = get_the_title((int)$this->form_id);
?>
<div class="metform-entry-data container">
<table class='mf-entry-data' cellpadding="5" cellspacing="0">
<tbody>
<tr class="mf-data-label">
<td colspan='2'><strong><?php esc_html_e('Form Name ', 'metform'); ?></strong></td>
</tr>
<tr class='mf-data-value'>
<td><?php echo esc_attr($form_title); ?></td>
</tr>
<tr class="mf-data-label">
<td colspan='2'><strong><?php esc_html_e('Entry ID', 'metform'); ?></strong></td>
</tr>
<tr class='mf-data-value'>
<td>
<?php
$metform_entries_serial_no = get_post_meta($post->ID, 'metform_entries_serial_no', true);
echo esc_html(isset($metform_entries_serial_no)? $metform_entries_serial_no : '');
?>
</td>
</tr>
<tr class="mf-data-label">
<td colspan='2'><strong><?php esc_html_e('Entry By', 'metform'); ?></strong></td>
</tr>
<tr class='mf-data-value'>
<td>
<?php
$logged_user_id = get_post_meta($post->ID, 'metform_entries__user_id', true);
if($logged_user_id){
$author_obj = get_user_by('id', $logged_user_id);
$profile_link = "<a href='". wp_nonce_url(admin_url()."/user-edit.php?user_id={$logged_user_id}")."'> {$author_obj->data->user_login} </a>";
echo wp_kses($profile_link, array('a' => ['href'=>[]]));
}else{
echo esc_html__("Visitor", "metform");
}
?>
</td>
</tr>
</tbody>
</table>
</div>
<?php
}
function add_form_data_cmb()
{
// Get the form settings data
//phpcs:ignore WordPress.Security.NonceVerification -- Nonce can't be added in CPT edit page URL
$post_id = isset($_GET['post']) ? sanitize_text_field(wp_unslash($_GET['post'])) : '';
$form_id = get_post_meta($post_id, 'metform_entries__form_id', true);
$form_settings = \MetForm\Core\Forms\Action::instance()->get_all_data($form_id);
// Change the form entries main title based on the form type
$data_title = esc_html__('Data', 'metform');
if(isset($form_settings['form_type']) && $form_settings['form_type'] == 'quiz-form'){
$data_title = esc_html__('Quiz Data', 'metform');
}
add_meta_box(
'metform_entries__form_data',
$data_title,
[$this, 'show_form_data_cmb'],
$this->cpt->get_name(),
'normal',
'high'
);
}
function add_browser_data_cmb()
{
// call browser data meta when browser data present
//phpcs:ignore WordPress.Security.NonceVerification -- Nonce can't be added in CPT edit page URL
$post_id = (isset($_GET['post']) ? sanitize_text_field(wp_unslash($_GET['post'])) : '');
$form_id = get_post_meta($post_id, 'metform_entries__form_id', true);
$form_settings = \MetForm\Core\Forms\Action::instance()->get_all_data($form_id);
$this->browser_data = get_post_meta($post_id, 'metform_form__entry_browser_data', true);
if ($this->browser_data == '' && !isset($form_settings['capture_user_browser_data'])) {
return;
}
add_meta_box(
'metform_form__entry_browser_data',
esc_html__('Browser Data', 'metform'),
[$this, 'show_browser_data_cmb'],
$this->cpt->get_name(),
'side',
'low'
);
}
function show_browser_data_cmb($post)
{
if ($this->browser_data != '') {
?>
<div class="metform-entry-data container">
<table class='mf-entry-data' cellpadding="5" cellspacing="0">
<?php
foreach ($this->browser_data as $key => $value) {
?>
<tbody>
<tr class="mf-data-label">
<td colspan='2'><strong><?php echo esc_attr($key); ?></strong></td>
</tr>
<tr class='mf-data-value'>
<td><?php echo esc_attr($value); ?></td>
</tr>
</tbody>
<?php
}
?>
</table>
</div>
<?php
} else {
echo esc_html__('Browser data not captured.', 'metform');
}
}
function add_file_upload_cmb()
{
// call file meta when file data present
//phpcs:ignore WordPress.Security.NonceVerification -- Nonce can't be added in CPT edit page URL
$post_id = (isset($_GET['post']) ? sanitize_text_field(wp_unslash($_GET['post'])) : '');
$file_meta_data = get_post_meta($post_id, 'metform_entries__file_upload', true);
$file_meta_data_new = get_post_meta($post_id, 'metform_entries__file_upload_new', true);
if(is_array($file_meta_data) || is_array($file_meta_data_new)){
add_meta_box(
'metform_entries__file_upload',
esc_html__('Files', 'metform'),
[$this, 'show_file_upload_cmb'],
$this->cpt->get_name(),
'normal',
'low'
);
}
}
function show_form_data_cmb($post)
{
wp_nonce_field('meta_nonce', 'meta_nonce');
$this->form_data = get_post_meta($post->ID, 'metform_entries__form_data', true);
$this->form_data = (isset($this->form_data)) ? $this->form_data : "";
// format all form data into html table
if ($this->form_data != '') {
$form_html = \MetForm\Core\Entries\Form_Data::format_form_data($this->form_id, $this->form_data);
\MetForm\Utils\Util::metform_content_renderer($form_html);
}
}
function show_file_upload_cmb($post)
{
// call file meta when file data present
//phpcs:ignore WordPress.Security.NonceVerification -- Nonce can't be added in CPT edit page URL
$post_id = (isset($_GET['post']) ? sanitize_text_field(wp_unslash($_GET['post'])) : '');
$file_meta_data = get_post_meta($post_id, 'metform_entries__file_upload', true);
if (!is_array($file_meta_data)) {
$file_meta_data = get_post_meta($post_id, 'metform_entries__file_upload_new', true);
if(!is_array($file_meta_data)) {
return;
} else {
foreach($file_meta_data as $key => $value) {
if(!empty($value)) {
$this->show_file($value, $key);
}
}
}
} else {
$this->show_file($file_meta_data);
}
}
public function show_file($files, $name = false)
{
echo '<ul>';
if($name) {
echo '<li>';
echo esc_html(((isset($this->fields[$name]->mf_input_label)) ? $this->fields[$name]->mf_input_label : $name) . " : ");
echo '</li><ul style="padding-left:15px;">';
}
foreach($files as $key => $file) {
if(is_null($name)) {
$name = $key;
}
echo "<li><i class='mf mf-file-2'></i>";
$file_url = isset($file['url']) ? $file['url'] : '';
$file_type = isset($file['type']) ? $file['type'] : '';
if ($file_url != '') {
if(!$name) {
echo esc_html(((isset($this->fields[$key]->mf_input_label)) ? $this->fields[$key]->mf_input_label : $key+1) . " : ");
}
echo "<a target='_blank' class='mf-file-url' href=" . esc_url($file_url) . " download>" . esc_html__('Download', 'metform') . "</a>";
echo((in_array($file_type, ['image/jpeg', 'image/png', 'image/jpg', 'image/gif', 'image/ico'])) ? ' | <a href="#" class="" data-toggle="modal" data-target="#mfFileUploadModal' . esc_attr($name . $key) . '">' . esc_html__('View', 'metform') . '</a>' : '');
} else {
echo esc_html(((isset($this->fields[$name]->mf_input_label)) ? $this->fields[$name]->mf_input_label : $key) . " : ") . esc_html__('This file is not uploaded.', 'metform');
}
echo "</li>";
$this->file_modal($name.$key, $file_url);
}
echo '</ul></ul>';
}
public function file_modal($key, $file_url) {
?>
<div class="attr-modal attr-fade mf-modal-container" id="mfFileUploadModal<?php echo esc_attr($key) ?>" tabindex="-1"
role="dialog" aria-labelledby="mfFileUploadodalMLabel" aria-hidden="true">
<div class="attr-modal-dialog" role="document">
<div class="attr-modal-content">
<div class="attr-modal-header">
<button type="button" class="attr-close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="attr-modal-body">
<img class="attr-img-responsive" src="<?php echo esc_url($file_url); ?>">
</div>
</div>
</div>
</div>
<?php
}
function store_form_data_cmb($post_id)
{
// add save code here
}
function add_woo_payment_status_cmb()
{
add_meta_box(
'metform_entries__woo_checkout_status',
esc_html__('Woocommerce Checkout', 'metform'),
[$this, 'show_woo_checkout_status_cmb'],
$this->cpt->get_name(),
'side',
'high'
);
}
function show_woo_checkout_status_cmb($post)
{
$order_id = get_post_meta($post->ID, 'mf_woo_order_id', true);
if($order_id == null) {
return;
}
$order = wc_get_order($order_id);
$order_url = get_admin_url() . 'post.php?post=' . $order_id . '&action=edit';
?>
<div class="metform-entry-data container">
<table class='mf-entry-data' cellpadding="5" cellspacing="0">
<tbody>
<tr class="mf-data-label">
<td colspan='2'><strong><?php esc_html_e('Order ID ', 'metform'); ?></strong></td>
</tr>
<tr class='mf-data-value'>
<td><?php echo esc_attr($order_id); ?></td>
</tr>
<tr class="mf-data-label">
<td colspan='2'><strong><?php esc_html_e('Order Status', 'metform'); ?></strong></td>
</tr>
<tr class='mf-data-value'>
<td><?php echo esc_attr($order->get_status()); ?></td>
</tr>
<tr class="mf-data-label">
<td colspan='2'><strong><?php esc_html_e('Total', 'metform'); ?></strong></td>
</tr>
<tr class='mf-data-value'>
<td><?php echo esc_attr($order->get_total() . ' ' . $order->get_currency()); ?></td>
</tr>
<tr class="mf-data-label">
</tr>
<tr class='mf-data-value'>
<td><a class="button" href="<?php echo esc_url($order_url); ?>" target="__blank"><?php echo esc_html__('Order Details', 'metform'); ?></a></td>
</tr>
</tbody>
</table>
</div>
<?php
}
function add_form_payment_status_cmb()
{
add_meta_box(
'metform_entries__payment_status',
esc_html__('Payment', 'metform'),
[$this, 'show_form_payment_status_cmb'],
$this->cpt->get_name(),
'side',
'high'
);
}
function show_form_payment_status_cmb($post)
{
echo "Status : " . esc_html(get_post_meta($post->ID, 'metform_entries__payment_status', true)) . "<br>";
if (get_post_meta($post->ID, 'metform_entries__payment_invoice', true)) {
echo "Invoice : ";
echo esc_html(get_post_meta($post->ID, 'metform_entries__payment_invoice', true)) . "<br>";
}
}
}