id === 'edit-king-addons-fb-sub') {
wp_enqueue_style('king-addons-fb-sub-style', KING_ADDONS_URL . 'includes/widgets/Form_Builder/admin.css', '', KING_ADDONS_VERSION);
}
}
public function renderAdminCustomHeader()
{
$current_screen = get_current_screen()->id;
if ($current_screen !== 'edit-king-addons-fb-sub') {
return;
}
?>
post_type === $post_type) {
$form_page_id = absint(get_post_meta($post->ID, 'king_addons_form_page_id', true));
// Check if Pro constants are defined before using them
if (defined('KING_ADDONS_PRO_URL') && defined('KING_ADDONS_PRO_VERSION')) {
wp_enqueue_style('king-addons-form-builder-submissions-css', KING_ADDONS_PRO_URL . 'assets/css/king-addons-submissions.css', [], KING_ADDONS_VERSION);
wp_enqueue_script('king-addons-form-builder-submissions-js', KING_ADDONS_PRO_URL . 'assets/js/king-addons-submissions.js', ['jquery'], KING_ADDONS_VERSION);
} else {
wp_enqueue_style('king-addons-form-builder-submissions-css', KING_ADDONS_URL . 'includes/widgets/Form_Builder/assets/css/king-addons-submissions.css', [], KING_ADDONS_VERSION);
wp_enqueue_script('king-addons-form-builder-submissions-js', KING_ADDONS_URL . 'includes/widgets/Form_Builder/assets/js/king-addons-submissions.js', ['jquery'], KING_ADDONS_VERSION);
}
wp_localize_script(
'king-addons-form-builder-submissions-js',
'KingAddonsSubmissions',
[
'ajaxurl' => esc_url_raw(admin_url('admin-ajax.php')),
'resturl' => esc_url_raw(get_rest_url() . 'king-addons/v1'),
'nonce' => wp_create_nonce('king-addons-submissions-js'),
'form_name' => sanitize_text_field(get_post_meta($post->ID, 'king_addons_form_name', true)),
'form_id' => sanitize_key(get_post_meta($post->ID, 'king_addons_form_id', true)),
'form_page' => sanitize_text_field(get_post_meta($post->ID, 'king_addons_form_page', true)),
'form_page_id' => $form_page_id,
'form_page_url' => $form_page_id ? esc_url_raw(get_permalink($form_page_id)) : '',
'form_page_editor' => $form_page_id ? esc_url_raw(admin_url('post.php?post=' . $form_page_id . '&action=elementor')) : '',
'form_agent' => sanitize_textarea_field(get_post_meta($post->ID, 'king_addons_user_agent', true)),
'agent_ip' => sanitize_text_field(get_post_meta($post->ID, 'king_addons_user_ip', true)),
'post_created' => date('F j, Y g:i a', strtotime($post->post_date)),
'post_updated' => date('F j, Y g:i a', strtotime($post->post_modified)),
]
);
}
}
}
public function king_addons_submissions_meta_box()
{
$args = new WP_Query([
'post_type' => 'king-addons-fb-sub'
]);
foreach ($args as $arg) {
add_meta_box(
'king_addons_submission_fields',
'King Addons Submissions',
[$this, 'king_addons_meta_box_callback'],
'king-addons-fb-sub',
'normal',
'default'
);
}
}
public function king_addons_meta_box_callback($post, $metabox)
{
echo '';
$meta_value = $value[0];
if (is_serialized($meta_value)) {
$unserialized = maybe_unserialize($meta_value);
if (is_array($unserialized)) {
$value = $unserialized;
} else {
$value = [$meta_value];
}
}
$prefix = "form_field-";
$key_title = !empty($value[2]) ? esc_html($value[2]) : esc_html(ucfirst(str_replace($prefix, "", $key)));
if (str_contains($key, '_action_')) {
$prefix = '_action_king_addons_form_builder_';
$label = ucfirst(substr($key, strpos($key, $prefix) + strlen($prefix)));
echo '
';
$status = isset($value['status']) ? sanitize_html_class($value['status']) : '';
$message = isset($value['message']) ? esc_html(ucfirst($value['message'])) : '';
echo '
' . $message . '
';
} elseif (isset($value[0]) && 'file' === $value[0]) {
echo '
';
if (is_array($value[1])) {
foreach ($value[1] as $index => $file) {
$file_url = esc_url($file);
echo '
' . $file_url . '';
}
}
} elseif (isset($value[0]) && 'textarea' === $value[0]) {
echo '
';
$text_value = isset($value[1]) ? esc_textarea($value[1]) : '';
echo '
';
} elseif (isset($value[0]) && ('radio' === $value[0] || 'checkbox' === $value[0])) {
echo '
';
if (is_array($value[1])) {
foreach ($value[1] as $index => $item) {
$checked = (!empty($item[1]) && 'true' === $item[1]) ? 'checked' : '';
$input_value = isset($item[0]) ? esc_attr($item[0]) : '';
$input_name = isset($item[2]) ? esc_attr($item[2]) : '';
$input_id = isset($item[3]) ? esc_attr($item[3]) : esc_attr($key . '_' . $index);
echo '
';
echo '
';
}
}
} elseif (isset($value[0]) && 'select' === $value[0]) {
$select_value = $value[1];
if (is_array($select_value)) {
$select_value = implode(",", $select_value);
}
echo '
';
echo '
';
} else {
$type_attr = !empty($value[0]) ? $value[0] : 'text';
$input_val = isset($value[1]) ? $value[1] : (isset($value[0]) ? $value[0] : '');
echo '
';
echo '
';
}
echo '
';
}
}
/**
* Payment status block on the submission card.
*
* @param \WP_Post $post Submission.
*
* @return void
*/
private function render_payment_block($post): void
{
$status = sanitize_key((string) get_post_meta($post->ID, 'king_addons_payment_status', true));
if ('' === $status) {
return;
}
$provider = sanitize_key((string) get_post_meta($post->ID, 'king_addons_payment_provider', true));
$txn = sanitize_text_field((string) get_post_meta($post->ID, 'king_addons_payment_txn_id', true));
$amount = get_post_meta($post->ID, 'king_addons_payment_amount', true);
$currency = sanitize_text_field((string) get_post_meta($post->ID, 'king_addons_payment_currency', true));
$time = absint(get_post_meta($post->ID, 'king_addons_payment_time', true));
echo '';
echo '
';
echo '
';
echo esc_html($status);
if ('' !== $provider) {
echo ' · ' . esc_html($provider);
}
if ('' !== (string) $amount) {
echo ' · ' . esc_html((string) $amount . ' ' . $currency);
}
if ('' !== $txn) {
echo ' · ' . esc_html($txn);
}
if ($time) {
echo ' · ' . esc_html(date_i18n(get_option('date_format') . ' ' . get_option('time_format'), $time));
}
echo '
';
echo '
';
}
public function register_post_type_king_addons_submissions()
{
$labels = [
'name' => esc_html__('Form Submissions', 'king-addons'),
'singular_name' => esc_html__('Submission', 'king-addons'),
'edit_item' => esc_html__('Edit Submission', 'king-addons'),
'view_item' => esc_html__('View Submission', 'king-addons'),
'all_items' => esc_html__('Form Submissions', 'king-addons'),
'search_items' => esc_html__('Search Submissions', 'king-addons'),
'parent_item_colon' => esc_html__('Parent Submissions:', 'king-addons'),
'not_found' => esc_html__('No Submissions found.', 'king-addons'),
'not_found_in_trash' => esc_html__('No Submissions found in Trash.', 'king-addons'),
];
$args = [
'labels' => $labels,
'public' => true,
'show_ui' => true,
// 'show_in_menu' => 'king-addons',
'show_in_menu' => false,
'rewrite' => ['slug' => 'king-addons-fb-sub'],
'supports' => [],
'register_meta_box_cb' => [$this, 'king_addons_submissions_meta_box']
];
register_post_type('king-addons-fb-sub', $args);
// Remove Title and Editor fields for submissions
remove_post_type_support('king-addons-fb-sub', 'title');
remove_post_type_support('king-addons-fb-sub', 'editor');
}
public function king_addons_submissions_custom_columns($columns)
{
unset($columns['title']);
unset($columns['author']);
unset($columns['categories']);
unset($columns['date']);
$columns['main'] = __('Main', 'king-addons');
$columns['action_status'] = __('Action Status', 'king-addons');
$columns['payment'] = __('Payment', 'king-addons');
$columns['form_id'] = __('Form', 'king-addons');
$columns['page'] = __('Page', 'king-addons');
$columns['post_id'] = __('ID', 'king-addons');
$columns['read_status'] = __('Read Status');
$columns['date'] = __('Date', 'king-addons');
return $columns;
}
public function king_addons_submissions_sortable_columns($columns)
{
$columns['read_status'] = 'read_status';
return $columns;
}
public function king_addons_submissions_custom_column_content($column, $post_id)
{
$submission = get_post($post_id);
$submission_meta = get_post_meta($post_id);
$action_status = 'success';
$main_key = '';
foreach ($submission_meta as $key => $value) {
if (str_contains($key, 'form_field-email')) {
$main_key = $key;
}
if (str_contains($key, '_action_')) {
if (str_contains($value[0], 'error')) {
$action_status = 'error';
}
}
}
switch ($column) {
case 'main':
$main_value = '';
if ($main_key !== '') {
$main_meta = get_post_meta($post_id, $main_key, true);
$main_value = is_array($main_meta) && isset($main_meta[1]) ? $main_meta[1] : $main_meta;
}
echo sprintf(
'