Uname: Linux webm016.cluster127.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
Software: Apache
PHP version: 7.4.33 [ PHP INFO ] PHP os: Linux
Server Ip: 54.36.31.145
Your Ip: 216.73.216.182
User: homesquasz (91404) | Group: users (100)
Safe Mode: OFF
Disable Function:
_dyuweyrj4,_dyuweyrj4r,dl

name : admin-agni-custom-tabs.php
<?php

/**
 * Add a custom product tab.
 */
function cartify_product_data_tabs_additional( $tabs) {

    $tabs['agni_additional_tabs'] = array(
		'label'		=> esc_html__( 'Cartify Additional Tabs', 'cartify' ),
		'target'	=> 'agni-additional-tabs-options',
		'class'		=> array( 'agni_woocommerce_additional_tab' ),
    );

    $tabs['agni_additional_info'] = array(
		'label'		=> esc_html__( 'Cartify Additional Info', 'cartify' ),
		'target'	=> 'agni-additional-info-options',
		'class'		=> array( 'agni_woocommerce_additional_tab' ),
    );


    	return $tabs;

}

function cartify_product_data_tab_specification_table_fields_prepare( $field = array() ){
    ?>
    <div>
        <p class="form-field agni_product_data_tab_specification_table_data_key_field">
            <label for="agni_product_data_tab_specification_table_data_key"><?php echo esc_html__( 'Data Key', 'cartify' ); ?></label>
            <input id="agni_product_data_tab_specification_table_data_key" type="text" placeholder="<?php echo esc_attr__( 'Model', 'cartify' ); ?>" name="agni_product_data_tab_specification_table_data_key[]" value="<?php if(isset( $field['key'] )){ echo esc_attr( $field['key'] ); } ?>" /> 
        </p>
        <p class="form-field agni_product_data_tab_specification_table_data_value_field">
            <label for="agni_product_data_tab_specification_table_data_value"><?php echo esc_html__( 'Data Value', 'cartify' ); ?></label>
            <input id="agni_product_data_tab_specification_table_data_value" type="text" placeholder="<?php echo esc_attr__( '#ML20673', 'cartify' ); ?>" name="agni_product_data_tab_specification_table_data_value[]" value="<?php if(isset( $field['value'] )){ echo esc_attr( $field['value'] ); } ?>" />
        </p>
        <p class="form-field"><a href="#" class="button remove"><?php echo esc_html_x( 'Remove', 'Product Options Specification remove', 'cartify' );?></a></p>

            </div>
    <?php
}


function cartify_product_data_features_fields_prepare( $field = array() ){
    ?>
    <div>
        <p class="form-field agni_product_data_feature_icon_field">
            <label for="agni_product_data_feature_icon"><?php echo esc_html__( 'Icon', 'cartify' ); ?></label>
            <input id="agni_product_data_feature_icon" type="text" placeholder="<?php echo esc_attr__( 'Icon', 'cartify' ); ?>" name="agni_product_data_feature_icon[]" value="<?php if(isset( $field['icon'] )){ echo esc_attr( $field['icon'] ); } ?>" /> 
        </p>
        <p class="form-field agni_product_data_feature_text_field">
            <label for="agni_product_data_feature_text"><?php echo esc_html__( 'Text', 'cartify' ); ?></label>
            <input id="agni_product_data_feature_text" type="text" placeholder="<?php echo esc_attr__( 'Text', 'cartify' ); ?>" name="agni_product_data_feature_text[]" value="<?php if(isset( $field['text'] )){ echo esc_attr( $field['text'] ); } ?>" />
        </p>
        <p class="form-field"><a href="#" class="button remove"><?php echo esc_html_x( 'Remove', 'Product Options Feature remove', 'cartify' );?></a></p>

            </div>
    <?php
}

function cartify_product_data_offer_fields_prepare( $field = '' ){
    ?>
    <div>
        <p class="form-field agni_product_data_offer_text_field">
            <label for="agni_product_data_offer_text"><?php echo esc_html__( 'Text', 'cartify' ); ?></label>
            <input id="agni_product_data_offer_text" type="text" placeholder="<?php echo esc_attr__( 'Offer Text', 'cartify' ); ?>" name="agni_product_data_offer_text[]" value="<?php if(isset( $field )){ echo esc_attr( $field ); } ?>" />
            <a href="#" class="button remove"><?php echo esc_html_x( 'Remove', 'Product Options Offers remove', 'cartify' );?></a>
        </p>
    </div>
    <?php
}

function cartify_product_data_additional_tabs_custom_field(){

    global $post;

    $agni_product_data_tab_specification_title = get_post_meta( $post->ID, 'agni_product_data_tab_specification_title', true );
    $agni_product_data_tab_specification_table_data = get_post_meta( $post->ID, 'agni_product_data_tab_specification_table_data', true );

    $agni_product_data_tab_shipping_info_title = get_post_meta( $post->ID, 'agni_product_data_tab_shipping_info_title', true );
    $agni_product_data_tab_shipping_info_desc = get_post_meta( $post->ID, 'agni_product_data_tab_shipping_info_desc', true );

    ?><div id='agni-additional-tabs-options' class='panel woocommerce_options_panel'><?php

		?><div class='options_group'>

            <p><strong><?php echo esc_html__( 'Specification Tab', 'cartify' ); ?></strong></p>
            <div class="agni_product_data_custom_tab_specification_fields">
                <?php
                $content = '';
                $editor_id = 'agni_product_data_tab_specification_desc';
                $setting = array(
                    'editor_class' => 'agni_product_data_tab_specification_desc'
                )
                ?>

                <?php

                woocommerce_wp_text_input( array(
                    'id'      => 'agni_product_data_tab_specification_title',
                    'name'    => 'agni_product_data_tab_specification_title',
                    'label'   => esc_html__( 'Title', 'cartify' ),
                    'value'   => esc_html( $agni_product_data_tab_specification_title )
                                    ) );
                ?>
                <div id="agni_product_data_tab_specification_table_fields_repeatable" class="agni_product_data_tab_specification_table_fields agni_product_data_fields_repeatable">
                    <?php
                    if ( $agni_product_data_tab_specification_table_data ) {
                        foreach ( $agni_product_data_tab_specification_table_data as $field ) {
                            cartify_product_data_tab_specification_table_fields_prepare($field);
                        }
                    }
                    else {
                        cartify_product_data_tab_specification_table_fields_prepare();
                    } 
                    ?>

                    <p class="form-field"><a href="#" class="add_field button"><?php echo esc_html__( 'Duplicate', 'cartify' );?></a></p>
                </div>
            </div>
            <p><strong><?php echo esc_html__( 'Shipping Info Tab', 'cartify' ); ?></strong></p>
            <div class="agni_product_data_custom_tab_shipping_info_fields">
                <?php
                $content = wp_kses_post( $agni_product_data_tab_shipping_info_desc );
                $editor_id = 'agni_product_data_tab_shipping_info_desc';
                $setting = array(
                    'editor_class' => 'agni_product_data_tab_shipping_info_desc'
                )
                ?>

                <?php

                woocommerce_wp_text_input( array(
                    'id'      => 'agni_product_data_tab_shipping_info_title',
                    'name'      => 'agni_product_data_tab_shipping_info_title',
                    'label'   => esc_html__( 'Title', 'cartify' ),
                ) );

                ?>
                <div class="form-field agni_product_data_tab_shipping_info_desc_field">
                    <label for="<?php echo esc_attr( $setting['editor_class'] ); ?>"><?php echo esc_html__( 'Content', 'cartify' ); ?></label>
                    <?php
                    wp_editor( $content, $editor_id, $setting );
                    ?>
                </div>
            </div>


                    </div>
    </div>
    <?php
}

function cartify_product_data_additional_info_custom_field(){

	global $post;


        $agni_product_data_shipping_info_title = get_post_meta( $post->ID, 'agni_product_data_shipping_info_title', true );
    $agni_product_data_shipping_info_desc = get_post_meta( $post->ID, 'agni_product_data_shipping_info_desc', true );
    $agni_product_data_shipping_info_link_text = get_post_meta( $post->ID, 'agni_product_data_shipping_info_link_text', true );
    $agni_product_data_shipping_info_popup = get_post_meta( $post->ID, 'agni_product_data_shipping_info_popup', true );

    $agni_product_data_features = get_post_meta( $post->ID, 'agni_product_data_features', true );

    $agni_product_data_offer_title = get_post_meta( $post->ID, 'agni_product_data_offer_title', true );
    $agni_product_data_offer_text = get_post_meta( $post->ID, 'agni_product_data_offer_text', true );

    $agni_product_data_threesixty_images = get_post_meta( $post->ID, 'agni_product_data_threesixty_images', true );
    $agni_product_data_video_embed_url = get_post_meta( $post->ID, 'agni_product_data_video_embed_url', true );

		?><div id='agni-additional-info-options' class='panel woocommerce_options_panel'><?php

		?><div class='options_group'>
            <p><strong><?php echo esc_html__( 'Shipping Info', 'cartify' ); ?></strong></p>
            <?php

            $editor_id = 'agni_product_data_shipping_info_popup';
            $setting = array(
                'editor_class' => 'agni_product_data_shipping_info_popup'
            );

            woocommerce_wp_text_input( array(
                'id'        => 'agni_product_data_shipping_info_title',
                'name'      => 'agni_product_data_shipping_info_title',
                'label'     => esc_html__( 'Title', 'cartify' ),
                'value'     => esc_html($agni_product_data_shipping_info_title),
            ) );
            woocommerce_wp_textarea_input( array(
                'id'        => 'agni_product_data_shipping_info_desc',
                'name'      => 'agni_product_data_shipping_info_desc',
                'label'     => esc_html__( 'Short Description', 'cartify' ),
                'value'     => esc_html($agni_product_data_shipping_info_desc),
            ) );
            woocommerce_wp_text_input( array(
                'id'        => 'agni_product_data_shipping_info_link_text',
                'name'      => 'agni_product_data_shipping_info_link_text',
                'label'     => esc_html__( 'Link Text', 'cartify' ),
                'value'     => esc_html($agni_product_data_shipping_info_link_text),
            ) );
            ?>
            <div class="form-field agni_product_data_shipping_info_popup_field">
                <label for="<?php echo esc_attr( $setting['editor_class'] ); ?>"><?php echo esc_html__( 'Popup Content', 'cartify' ); ?></label>
                <?php
                wp_editor( $agni_product_data_shipping_info_popup, $editor_id, $setting );
                ?>
            </div>
            <?php
            ?>
            <p><strong><?php echo esc_html__( 'Features', 'cartify' ); ?></strong></p>
            <div id="agni_product_data_features_fields_repeatable" class="agni_product_data_features_fields agni_product_data_fields_repeatable">
                <?php
                if ( $agni_product_data_features ) {
                    foreach ( $agni_product_data_features as $field ) {
                        cartify_product_data_features_fields_prepare($field);
                    }
                }
                else {
                    cartify_product_data_features_fields_prepare();
                } 
                ?>

                <p class="form-field"><a href="#" class="add_field button"><?php echo esc_html__( 'Duplicate', 'cartify' );?></a></p>
            </div>

            <p><strong><?php echo esc_html__( 'Offers', 'cartify' ); ?></strong></p>
            <div>
                <?php 
                woocommerce_wp_text_input( array(
                    'id'      => 'agni_product_data_offer_title',
                    'name'    => 'agni_product_data_offer_title',
                    'label'   => esc_html__( 'Title', 'cartify' ),
                    'value'   => esc_attr( $agni_product_data_offer_title )
                ) );
                ?>

                <div id="agni_product_data_offer_fields_repeatable" class="agni_product_data_offer_fields agni_product_data_fields_repeatable">
                    <?php
                    if ( $agni_product_data_offer_text ) {
                        foreach ( $agni_product_data_offer_text as $field ) {
                            cartify_product_data_offer_fields_prepare($field);
                        }
                    }
                    else {
                        cartify_product_data_offer_fields_prepare();
                    } 
                    ?>

                    <p class="form-field"><a href="#" class="add_field button"><?php echo esc_html__( 'Duplicate', 'cartify' );?></a></p>
                </div>
            </div>


                                    <p><strong><?php echo esc_html__( '360 Degree Image', 'cartify' ); ?></strong></p>
            <div class="agni_product_data_tab_threesixty_images_fields">
                <div class="form-field agni_product_data_tab_threesixty_images_field">
                    <label for="<?php echo esc_attr( $setting['editor_class'] ); ?>"><?php echo esc_html__( 'Choose Images', 'cartify' ); ?></label>
                    <div class="agni_product_data_tab_threesixty_images__holder"> 
                        <?php 

                            
                                                        if( $agni_product_data_threesixty_images ){
                                foreach( $agni_product_data_threesixty_images as $agni_product_data_threesixty_image ){
                                    ?><div id="agni_product_data_tab_threesixty_image-<?php echo esc_attr( $agni_product_data_threesixty_image['id'] ); ?>" class="agni_product_data_tab_threesixty_images__image">
                                    <?php echo wc_get_gallery_image_html( $agni_product_data_threesixty_image['id'], false ); ?>
                                    </div><?php
                                }
                            }
                        ?>
                    </div>
                    <?php 
                    if( $agni_product_data_threesixty_images ){
                        foreach( $agni_product_data_threesixty_images as $agni_product_data_threesixty_image ){ ?>
                            <input type="hidden" id="agni_product_data_tab_threesixty_images" name="agni_product_data_tab_threesixty_images[]" value="<?php echo esc_attr( implode(',', $agni_product_data_threesixty_image) ); ?>" />
                        <?php }
                    }
                    ?>
                    <a href="#" class="form-field agni_product_data_tab_threesixty_images__button button" data-product-id="<?php echo esc_attr($post->ID); ?>"><?php echo esc_html__( 'Add Images', 'cartify' ); ?></a>
                    <p><?php echo esc_html__( 'Add atleast 30 images to see flawless view.', 'cartify' ); ?></p>
                </div>
            </div>

            <p><strong><?php echo esc_html__( 'Produce Video', 'cartify' ); ?></strong></p>
            <div class="agni_product_data_tab_video_fields">
                <?php  
                    woocommerce_wp_textarea_input( array(
                    'id'        => 'agni_product_data_tab_embed_url',
                    'name'      => 'agni_product_data_tab_embed_url',
                    'label'     => esc_html__( 'Embed URL', 'cartify' ),
                    'value'     => $agni_product_data_video_embed_url,
                ) );
                ?>
            </div>

                    </div>
    </div>
    <?php

}

function cartify_product_data_custom_tabs_save_custom_field( $post_id ) {

	    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
        return;

    if (!current_user_can('edit_post', $post_id))
        return;


    $existing_shipping_info_title = get_post_meta( $post_id, 'agni_product_data_tab_shipping_info_title', true );
    $existing_shipping_info_desc = get_post_meta( $post_id, 'agni_product_data_tab_shipping_info_desc', true );

    $shipping_info_title = $_POST['agni_product_data_tab_shipping_info_title'];
    $shipping_info_desc = $_POST['agni_product_data_tab_shipping_info_desc'];

    if( !empty($shipping_info_title) ){
        update_post_meta( $post_id, 'agni_product_data_tab_shipping_info_title', $shipping_info_title );
    }
    else{
        delete_post_meta( $post_id, 'agni_product_data_tab_shipping_info_title', $existing_shipping_info_title );
    }

    if( !empty($shipping_info_desc) ){
        update_post_meta( $post_id, 'agni_product_data_tab_shipping_info_desc', $shipping_info_desc );
    }
    else{
        delete_post_meta( $post_id, 'agni_product_data_tab_shipping_info_desc', $existing_shipping_info_desc );
    }

            $existing_specification_title = get_post_meta( $post_id, 'agni_product_data_tab_specification_title', true );
    $existing_specification_table_data_fields = get_post_meta( $post_id, 'agni_product_data_tab_specification_table_data', true );
    $new_specification_table_data_fields = array();

    $specification_title = $_POST['agni_product_data_tab_specification_title'];
    $specification_table_data_key = $_POST['agni_product_data_tab_specification_table_data_key'];
    $specification_table_data_value = $_POST['agni_product_data_tab_specification_table_data_value'];


    if( !empty($specification_title) ){
        update_post_meta( $post_id, 'agni_product_data_tab_specification_title', $specification_title );
    }
    else{
        delete_post_meta( $post_id, 'agni_product_data_tab_specification_title', $existing_specification_title );
    }

    for ( $i = 0; $i < count( $specification_table_data_key ); $i++ ) {
        if ( $specification_table_data_key[$i] != '' ){
            $new_specification_table_data_fields[$i]['key'] = $specification_table_data_key[$i];
        }
        if ( $specification_table_data_value[$i] != '' ){
            $new_specification_table_data_fields[$i]['value'] = $specification_table_data_value[$i];
        }
    }
    if ( !empty( $new_specification_table_data_fields ) && $new_specification_table_data_fields != $existing_specification_table_data_fields )
        update_post_meta( $post_id, 'agni_product_data_tab_specification_table_data', $new_specification_table_data_fields );
    elseif ( empty($new_specification_table_data_fields) && $existing_specification_table_data_fields )
        delete_post_meta( $post_id, 'agni_product_data_tab_specification_table_data', $existing_specification_table_data_fields );


    $existing_features_fields = get_post_meta($post_id, 'agni_product_data_features', true);
    $new_features_fields = array();
    $features_icons = $_POST['agni_product_data_feature_icon'];
    $features_text = $_POST['agni_product_data_feature_text'];

    for ( $i = 0; $i < count( $features_icons ); $i++ ) {
        if ( $features_icons[$i] != '' ){
            $new_features_fields[$i]['icon'] = $features_icons[$i];
        }
        if ( $features_text[$i] != '' ){
            $new_features_fields[$i]['text'] = $features_text[$i];
        }
    }
    if ( !empty( $new_features_fields ) && $new_features_fields != $existing_features_fields )
        update_post_meta( $post_id, 'agni_product_data_features', $new_features_fields );
    elseif ( empty($new_features_fields) && $existing_features_fields )
        delete_post_meta( $post_id, 'agni_product_data_features', $existing_features_fields );


    $existing_offer_title_field = get_post_meta( $post_id, 'agni_product_data_offer_title', true );
    $existing_offer_text_field = get_post_meta( $post_id, 'agni_product_data_offer_text', true );
    $new_offer_text_field = array();

    $offer_title = $_POST['agni_product_data_offer_title'];
    $offer_texts = $_POST['agni_product_data_offer_text'];
    foreach( $offer_texts as $offer_text ){
        $new_offer_text_field[] = $offer_text;
    }

    if( !empty($new_offer_text_field) ){
        update_post_meta( $post_id, 'agni_product_data_offer_text', $new_offer_text_field );
    }
    else{
        delete_post_meta( $post_id, 'agni_product_data_offer_text', $existing_offer_text_field );
    }

    if( !empty($offer_title) ){
        update_post_meta( $post_id, 'agni_product_data_offer_title', $offer_title );
    }
    else{
        delete_post_meta( $post_id, 'agni_product_data_offer_title', $existing_offer_title_field );
    }


    $existing_shipping_info_title_field = get_post_meta( $post_id, 'agni_product_data_shipping_info_title', true );
    $existing_shipping_info_desc_field = get_post_meta( $post_id, 'agni_product_data_shipping_info_desc', true );
    $existing_shipping_info_link_text_field = get_post_meta( $post_id, 'agni_product_data_shipping_info_link_text', true );
    $existing_shipping_info_popup_field = get_post_meta( $post_id, 'agni_product_data_shipping_info_popup', true );

        $shipping_info_title = $_POST['agni_product_data_shipping_info_title'];
    $shipping_info_desc = $_POST['agni_product_data_shipping_info_desc'];
    $shipping_info_link_text = $_POST['agni_product_data_shipping_info_link_text'];
    $shipping_info_popup = $_POST['agni_product_data_shipping_info_popup'];

    if( !empty($shipping_info_title) ){
        update_post_meta( $post_id, 'agni_product_data_shipping_info_title', $shipping_info_title );
    }
    else{
        delete_post_meta( $post_id, 'agni_product_data_shipping_info_title', $existing_shipping_info_title_field );
    }

    if( !empty($shipping_info_desc) ){
        update_post_meta( $post_id, 'agni_product_data_shipping_info_desc', $shipping_info_desc );
    }
    else{
        delete_post_meta( $post_id, 'agni_product_data_shipping_info_desc', $existing_shipping_info_desc_field );
    }

    if( !empty($shipping_info_link_text) ){
        update_post_meta( $post_id, 'agni_product_data_shipping_info_link_text', $shipping_info_link_text );
    }
    else{
        delete_post_meta( $post_id, 'agni_product_data_shipping_info_link_text', $existing_shipping_info_link_text_field );
    }
    if( !empty($shipping_info_popup) ){
        update_post_meta( $post_id, 'agni_product_data_shipping_info_popup', $shipping_info_popup );
    }
    else{
        delete_post_meta( $post_id, 'agni_product_data_shipping_info_popup', $existing_shipping_info_popup_field );
    }

    $existing_threesixty_images_list_field = get_post_meta( $post_id, 'agni_product_data_threesixty_images', true );
    $new_threesixty_images_list = array();
    if( isset( $_POST['agni_product_data_tab_threesixty_images'] ) ){
        $threesixty_images_list = $_POST['agni_product_data_tab_threesixty_images'];

        for ( $i = 0; $i < count( $threesixty_images_list ); $i++ ) {
            if ( $threesixty_images_list[$i] != '' ){
                $threesixty_images_list_item = explode( ',', $threesixty_images_list[$i] );
                $new_threesixty_images_list[$i]['id'] = $threesixty_images_list_item[0];
                $new_threesixty_images_list[$i]['url'] = $threesixty_images_list_item[1];
            }
        }

        if( !empty($new_threesixty_images_list) && $new_threesixty_images_list != $existing_threesixty_images_list_field ){
            update_post_meta( $post_id, 'agni_product_data_threesixty_images', $new_threesixty_images_list );
        }
        elseif ( empty($new_threesixty_images_list) && $existing_threesixty_images_list_field ){
            delete_post_meta( $post_id, 'agni_product_data_threesixty_images', $existing_threesixty_images_list_field );
        }
    }

    $existing_video_embed_url = get_post_meta( $post_id, 'agni_product_data_video_embed_url', true );
    $video_embed_url = $_POST['agni_product_data_tab_embed_url'];

    if( !empty( $video_embed_url ) ){
        update_post_meta( $post_id, 'agni_product_data_video_embed_url', $video_embed_url );
    }
    else{
        delete_post_meta( $post_id, 'agni_product_data_video_embed_url', $existing_video_embed_url );
    }


        return $post_id;

	}


function cartify_admin_custom_tabs_scripts(){

    	if( !did_action( 'wp_enqueue_media' ) ) {
        wp_enqueue_media();
	}

        wp_enqueue_script('cartify-admin-custom-tabs', AGNI_FRAMEWORK_JS_URL . '/agni-custom-tabs/admin-agni-custom-tabs.js', array('jquery'), wp_get_theme()->get('Version'), true);
}



add_filter( 'woocommerce_product_data_tabs', 'cartify_product_data_tabs_additional' );
add_filter( 'woocommerce_product_data_panels', 'cartify_product_data_additional_info_custom_field', 11 );
add_filter( 'woocommerce_product_data_panels', 'cartify_product_data_additional_tabs_custom_field' );
add_action( 'woocommerce_process_product_meta', 'cartify_product_data_custom_tabs_save_custom_field', 10, 1 );

add_action( 'admin_enqueue_scripts', 'cartify_admin_custom_tabs_scripts' );
© 2026 GrazzMean