utils->is_step_post_type( $screen->post_type ) ) { wp_enqueue_style( 'woocommerce_admin_styles' ); wp_enqueue_script( 'select2' ); wp_enqueue_script( 'wc-enhanced-select' ); wp_enqueue_script( 'wcf-admin-meta', CARTFLOWS_URL . 'admin/meta-assets/js/admin-edit.js', array( 'jquery', 'select2', 'wp-color-picker' ), CARTFLOWS_VER, true ); wp_enqueue_style( 'wcf-admin-meta', CARTFLOWS_URL . 'admin/meta-assets/css/admin-edit.css', array( 'wp-color-picker' ), CARTFLOWS_VER ); wp_style_add_data( 'wcf-admin-meta', 'rtl', 'replace' ); $localize = array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'google_fonts' => CartFlows_Font_Families::get_google_fonts(), 'system_fonts' => CartFlows_Font_Families::get_system_fonts(), 'font_weights' => array( '100' => __( 'Thin 100', 'cartflows' ), '200' => __( 'Extra-Light 200', 'cartflows' ), '300' => __( 'Light 300', 'cartflows' ), '400' => __( 'Normal 400', 'cartflows' ), '500' => __( 'Medium 500', 'cartflows' ), '600' => __( 'Semi-Bold 600', 'cartflows' ), '700' => __( 'Bold 700', 'cartflows' ), '800' => __( 'Extra-Bold 800', 'cartflows' ), '900' => __( 'Ultra-Bold 900', 'cartflows' ), ) ); wp_localize_script( 'jquery', 'wcf', apply_filters( 'wcf_js_localize', $localize ) ); do_action( 'cartflows_admin_meta_scripts' ); } } /** * Function to search coupons */ public function json_search_coupons() { check_admin_referer( 'wcf-json-search-coupons', 'security' ); global $wpdb; $term = (string) urldecode( sanitize_text_field( wp_unslash( $_GET['term'] ) ) ); // phpcs:ignore if ( empty( $term ) ) { die(); } $posts = wp_cache_get( 'wcf_search_coupons', 'wcf_funnel_Cart' ); if ( false === $posts ) { $posts = $wpdb->get_results( // phpcs:ignore $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}posts WHERE post_type = %s AND post_title LIKE %s AND post_status = %s", 'shop_coupon', $wpdb->esc_like( $term ) . '%', 'publish' ) ); wp_cache_set( 'wcf_search_coupons', $posts, 'wcf_funnel_Cart' ); } $coupons_found = array(); $all_discount_types = wc_get_coupon_types(); if ( $posts ) { foreach ( $posts as $post ) { $discount_type = get_post_meta( $post->ID, 'discount_type', true ); if ( ! empty( $all_discount_types[ $discount_type ] ) ) { $coupons_found[ get_the_title( $post->ID ) ] = get_the_title( $post->ID ) . ' (Type: ' . $all_discount_types[ $discount_type ] . ')'; } } } wp_send_json( $coupons_found ); } /** * [add_checkout_custom_field description] * * @hook wcf_add_checkout_custom_field */ public function add_checkout_custom_field() { check_ajax_referer( 'wcf-add-checkout-custom-field', 'security' ); $post_id = intval( $_POST['post_id'] ); $add_to = sanitize_text_field( wp_unslash( $_POST['add_to'] ) ); $type = sanitize_text_field( wp_unslash( $_POST['type'] ) ); $options = sanitize_text_field( wp_unslash( $_POST['options'] ) ); $label = sanitize_text_field( wp_unslash( $_POST['label'] ) ); $name = sanitize_text_field( wp_unslash( $_POST['name'] ) ); if ( '' !== $name ) { $fields = Cartflows_Helper::get_checkout_fields( $add_to, $post_id ); $field_keys = array_keys($fields); $name = $add_to . '_' . sanitize_key( $name ); if( in_array($name, $field_keys) ) { $name = $name . '_' . rand( 0000, 9999 ); } $field_data = array( 'type' => $type, 'label' => $label, 'placeholder' => '', 'class' => array( 'form-row-wide' ), 'label_class' => array(), 'required' => true, 'custom' => true, ); if ( 'select' === $type ) { $options = explode( ',', $options ); $field_data['options'] = array(); if ( is_array( $options ) && ! empty( $options ) ) { foreach ( $options as $key => $value ) { $field_data['options'][ $value ] = $value; } } } Cartflows_Helper::add_checkout_field( $add_to, $name, $field_data, $post_id ); $key = sanitize_key( $name ); $name = 'wcf-' . $key; $field_args = array( 'label' => $label, 'name' => $name, 'value' => 'yes', 'after' => 'Enable', ); $field_args['after_html'] = ' | '; $field_args['after_html'] .= '' . __( 'Remove', 'cartflows' ) . ''; $field_args['after_html'] .= ''; $field_markup = wcf()->meta->get_checkbox_field( $field_args ); if( 'billing' === $add_to ) { $add_to_class = 'wcf-cb-fields'; } else if( 'shipping' === $add_to ) { $add_to_class = 'wcf-sb-fields'; } $data = array( 'field_data' => $field_data, 'field_args' => $field_args, 'add_to_class' => $add_to_class, 'markup' => $field_markup, ); wp_send_json( $data ); } wp_send_json( false ); } /** * [add_checkout_custom_field description] * * @hook wcf_add_checkout_custom_field */ public function add_pro_checkout_custom_field() { check_ajax_referer( 'wcf-pro-add-checkout-custom-field', 'security' ); $post_id = intval( $_POST['post_id'] ); $add_to = sanitize_text_field( wp_unslash( $_POST['add_to'] ) ); $type = sanitize_text_field( wp_unslash( $_POST['type'] ) ); $options = sanitize_text_field( wp_unslash( $_POST['options'] ) ); $label = sanitize_text_field( wp_unslash( $_POST['label'] ) ); $name = sanitize_text_field( wp_unslash( str_replace(' ', '_', $_POST['label'] ) ) ); $placeholder = sanitize_text_field( wp_unslash( $_POST['placeholder'] ) ); $width = sanitize_text_field( wp_unslash( $_POST['width'] ) ); $default_value = sanitize_text_field( wp_unslash( $_POST['default'] ) ); $is_required = sanitize_text_field( wp_unslash( $_POST['required'] ) ); $field_markup = ''; if ( '' !== $name ) { $fields = Cartflows_Helper::get_checkout_fields( $add_to, $post_id ); $field_keys = array_keys($fields); $name = $add_to . '_' . sanitize_key( $name ); if( in_array($name, $field_keys) ) { $name = $name . '_' . rand( 0000, 9999 ); } $field_data = array( 'type' => $type, 'label' => $label, 'placeholder' => $placeholder, 'class' => array( 'form-row-wide' ), 'label_class' => array(), 'required' => $is_required, 'custom' => true, 'default' => $default_value, 'options' => $options, ); if ( 'select' === $type ) { $options = explode( ',', $options ); $field_data['options'] = array(); if ( is_array( $options ) && ! empty( $options ) ) { foreach ( $options as $key => $value ) { $field_data['options'][ $value ] = $value; } } } $width_args = array( 'wcf-field-width_'.$name => $width, ); Cartflows_Helper::add_checkout_field( $add_to, $name, $field_data, $post_id ); Cartflows_Helper::save_meta_option( $post_id, $width_args ); $key = sanitize_key( $name ); $name = 'wcf-' . $key; $field_args = array( 'type' => $type, 'label' => $label, 'name' => $name, 'value' => 'yes', 'placeholder' => $placeholder, 'width' => $width, 'after' => 'Enable', 'section' => $add_to, 'default' => $default_value, 'required' => $is_required, 'options' => $options, ); $field_args['after_html'] = ' '; $field_args['after_html'] .= ''. __( 'Remove', 'cartflows' ).''; $field_args['after_html'] .= ''; // $field_markup = wcf()->meta->get_checkbox_field( $field_args ); $field_markup .= "
  • "; $field_markup .= $this->get_field_html_via_ajax($field_args); $field_markup .= "
  • "; if( 'billing' === $add_to ) { $add_to_class = 'billing-field-sortable'; $section = 'billing'; } else if( 'shipping' === $add_to ) { $add_to_class = 'shipping-field-sortable'; $section = 'shipping'; } $data = array( 'field_data' => $field_data, 'field_args' => $field_args, 'add_to_class' => $add_to_class, 'markup' => $field_markup, 'section' => $section, ); wp_send_json( $data ); } wp_send_json( false ); } /** * Get field html. * * @param array $args field arguments. * @return string */ function get_field_html_via_ajax( $field_args ) { $value = $field_args['value']; $is_checkbox = false; $is_require = false; $is_select = false; $display = 'none'; $field_content = ''; if ( isset( $field_args['before'] ) ) { $field_content .= '' . $field_args['before'] . ''; } $field_content .= ''; $field_content .= ''; if ( isset( $field_args['after'] ) ) { $field_content .= $field_args['after']; } $type = isset( $field_args['type'] ) ? $field_args['type'] : ''; $label = isset( $field_args['label'] ) ? $field_args['label'] : ''; $help = isset( $field_args['help'] ) ? $field_args['help'] : ''; $after_html = isset( $field_args['after_html'] ) ? $field_args['after_html'] : ''; $name = isset( $field_args['name'] ) ? $field_args['name'] : ''; $default = isset( $field_args['default']) ? $field_args['default'] : ''; $required = isset( $field_args['required']) ? $field_args['required'] : ''; $options = isset( $field_args['options']) ? $field_args['options'] : ''; $width = isset( $field_args['width']) ? $field_args['width'] : ''; $name_class = 'field-' . $field_args['name']; if( isset( $options ) && !empty( $options ) ){ $options = implode(', ', $options ); }else{ $options = ''; } if( 'yes' == $required ){ $is_require = true; } if( 'checkbox' == $type ){ $is_checkbox = true; } if( 'select' == $type ){ $is_select = true; $display = 'block'; } // echo "
    ";
    		// var_dump($after_html);
    		// echo "
    "; // $field_markup = wcf()->meta->get_only_checkbox_field( $field_args ); ob_start(); ?>
    * ↑ | ↓ Edit
    meta->get_select_field( array( 'label' => __( 'Field Width', 'cartflows' ), 'name' => 'wcf-field-width_' . str_replace( 'wcf-', '', $field_args['name'] ), 'value' => $width, 'options' => array( '33' => __( '33%', 'cartflows' ), '50' => __( '50%', 'cartflows' ), '100' => __( '100%', 'cartflows' ), ), ) ); ?>
    meta->get_text_field( array( 'label' => __( 'Field Label', 'cartflows' ), 'name' => 'wcf_label_text_field_' . $field_args['section'] . '[' . str_replace( 'wcf-', '', $field_args['name'] ) . ']', 'value' => $label, ) ); ?>
    meta->get_text_field( array( 'label' => __( 'Options', 'cartflows' ), 'name' => 'wcf_select_option_field_' . $field_args['section'] . '[' . str_replace( 'wcf-', '', $field_args['name'] ) . ']', 'value' => $options, ) ); ?>
    meta->get_select_field( array( 'label' => __( 'Default', 'cartflows' ), 'name' => 'wcf_label_default_field_' . $field_args['section'] . '[' . str_replace( 'wcf-', '', $field_args['name'] ) . ']', 'value' => $value, 'options' => array( '1' => __( 'Checked', 'cartflows' ), '0' => __( 'Un-Checked', 'cartflows' ), ), ) ); }else{ echo wcf()->meta->get_text_field( array( 'label' => __( 'Default', 'cartflows' ), 'name' => 'wcf_label_default_field_' . $field_args['section'] . '[' . str_replace( 'wcf-', '', $field_args['name'] ) . ']', 'value' => $default, ) ); } ?>
    style="display: none;" > meta->get_text_field( array( 'label' => __( 'Placeholder', 'cartflows' ), 'name' => 'wcf_label_placeholder_field_' . $field_args['section'] . '[' . str_replace( 'wcf-', '', $field_args['name'] ) . ']', 'value' => $label, ) ); ?>
    meta->get_checkbox_field( array( 'label' => __( 'Required', 'cartflows' ), 'name' => 'wcf_is_required_field_' . $field_args['section'] . '[' . str_replace( 'wcf-', '', $field_args['name'] ) . ']', 'value' => $required, ) ); ?>
    meta->get_checkbox_field( array( 'label' => __( 'Enable this field', 'cartflows' ), 'name' => $field_args['name'], 'value' => $value, ) ); ?>
    $search_string, 'post_type' => 'page', 'posts_per_page' => - 1, ) ); if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); $title = get_the_title(); $title .= ( 0 != $query->post->post_parent ) ? ' (' . get_the_title( $query->post->post_parent ) . ')' : ''; $id = get_the_id(); $data[] = array( 'id' => $id, 'text' => $title, ); } } if ( is_array( $data ) && ! empty( $data ) ) { $result[] = array( 'text' => '', 'children' => $data, ); } wp_reset_postdata(); // return the result in json. wp_send_json( $result ); } public function search_only_titles( $search, $wp_query ) { if ( ! empty( $search ) && ! empty( $wp_query->query_vars['search_terms'] ) ) { global $wpdb; $q = $wp_query->query_vars; $n = ! empty( $q['exact'] ) ? '' : '%'; $search = array(); foreach ( (array) $q['search_terms'] as $term ) { $search[] = $wpdb->prepare( "$wpdb->posts.post_title LIKE %s", $n . $wpdb->esc_like( $term ) . $n ); } if ( ! is_user_logged_in() ) { $search[] = "$wpdb->posts.post_password = ''"; } $search = ' AND ' . implode( ' AND ', $search ); } return $search; } function get_field( $field_data, $field_content ) { $label = isset( $field_data['label'] ) ? $field_data['label'] : ''; $help = isset( $field_data['help'] ) ? $field_data['help'] : ''; $after_html = isset( $field_data['after_html'] ) ? $field_data['after_html'] : ''; $name_class = 'field-' . $field_data['name']; $field_html = '
    '; if( ! empty( $label ) || ! empty( $help ) ) { $field_html .= '
    '; if( ! empty( $label ) ) { $field_html .= ''; } if ( ! empty( $help ) ) { $field_html .= ''; // $field_html .= ''; $field_html .= ''; $field_html .= ''; $field_html .= $help; $field_html .= ''; } $field_html .= '
    '; } $field_html .= '
    '; $field_html .= $field_content; if ( ! empty( $after_html ) ) { $field_html .= $after_html; } $field_html .= '
    '; $field_html .= '
    '; return $field_html; } function get_text_field( $field_data ) { $value = $field_data['value']; $attr = ''; if ( isset( $field_data['attr'] ) && is_array( $field_data['attr'] ) ) { foreach ( $field_data['attr'] as $attr_key => $attr_value ) { $attr .= ' ' . $attr_key . '="' . $attr_value . '"'; } } $field_content = ''; return $this->get_field( $field_data, $field_content ); } function get_shortcode_field( $field_data ) { $attr = ''; $attr_fields = array( 'readonly' => 'readonly', 'onfocus' => 'this.select()', 'onmouseup' => 'return false', ); if ( $attr_fields && is_array( $attr_fields ) ) { foreach ( $attr_fields as $attr_key => $attr_value ) { $attr .= ' ' . $attr_key . '="' . $attr_value . '"'; } } $field_content = ''; return $this->get_field( $field_data, $field_content ); } function get_display_field( $field_data ) { $field_content = $field_data['content']; return $this->get_field( $field_data, $field_content ); } function get_hr_line_field( $field_data ) { $field_data = array( 'name' => 'wcf-hr-line', 'content' => '
    ' ); $field_content = $field_data['content']; return $this->get_field( $field_data, $field_content ); } function get_number_field( $field_data ) { $value = $field_data['value']; $attr = ''; if ( isset( $field_data['attr'] ) && is_array( $field_data['attr'] ) ) { foreach ( $field_data['attr'] as $attr_key => $attr_value ) { $attr .= ' ' . $attr_key . '="' . $attr_value . '"'; } } $field_content = ''; return $this->get_field( $field_data, $field_content ); } function get_hidden_field( $field_data ) { $value = $field_data['value']; $attr = ''; if ( isset( $field_data['attr'] ) && is_array( $field_data['attr'] ) ) { foreach ( $field_data['attr'] as $attr_key => $attr_value ) { $attr .= ' ' . $attr_key . '="' . $attr_value . '"'; } } $field_content = ''; return $this->get_field( $field_data, $field_content ); } function get_area_field( $field_data ) { $value = $field_data['value']; $field_content = ''; return $this->get_field( $field_data, $field_content ); } function get_only_checkbox_field( $field_data ) { // echo "
    ";
    		// var_dump($field_data);
    		// echo "
    "; $value = $field_data['value']; $field_content = ''; if ( isset( $field_data['before'] ) ) { $field_content .= '' . $field_data['before'] . ''; } $field_content .= ''; $field_content .= ''; if ( isset( $field_data['after'] ) ) { $field_content .= '' . $field_data['after'] . ''; } if ( isset( $field_data['after_html'] ) ) { $field_content .= '' . $field_data['after_html'] . ''; } return $field_content; } function get_checkbox_field( $field_data ) { $value = $field_data['value']; $field_content = ''; if ( isset( $field_data['before'] ) ) { $field_content .= '' . $field_data['before'] . ''; } $field_content .= ''; $field_content .= ''; if ( isset( $field_data['after'] ) ) { $field_content .= '' . $field_data['after'] . ''; } return $this->get_field( $field_data, $field_content ); } function get_radio_field( $field_data ) { $value = $field_data['value']; $field_content = ''; if ( is_array( $field_data['options'] ) && ! empty( $field_data['options'] ) ) { foreach ( $field_data['options'] as $data_key => $data_value ) { $field_content .= '
    '; $field_content .= ''; $field_content .= $data_value; $field_content .= '
    '; } } return $this->get_field( $field_data, $field_content ); } function get_font_family_field( $field_data ) { $value = $field_data['value']; $pro_options = isset( $field_data['pro-options'] ) ? $field_data['pro-options'] : array(); $field_content = ''; return $this->get_field( $field_data, $field_content ); } function get_font_weight_field( $field_data ) { $value = $field_data['value']; $pro_options = isset( $field_data['pro-options'] ) ? $field_data['pro-options'] : array(); $field_content = ''; return $this->get_field( $field_data, $field_content ); } function get_select_field( $field_data ) { $value = $field_data['value']; $pro_options = isset( $field_data['pro-options'] ) ? $field_data['pro-options'] : array(); $field_content = ''; if ( isset( $field_data['after'] ) ) { $field_content .= '' . $field_data['after'] . ''; } return $this->get_field( $field_data, $field_content ); } function get_color_picker_field( $field_data ) { $value = $field_data['value']; $field_content = ''; return $this->get_field( $field_data, $field_content ); } function get_product_selection_field( $field_data ) { $value = $field_data['value']; $multiple = ''; if ( isset( $field_data['multiple'] ) && $field_data['multiple'] ) { $multiple = ' multiple="multiple"'; } $allow_clear = ''; if ( isset( $field_data['allow_clear'] ) && $field_data['allow_clear'] ) { $allow_clear = ' data-allow_clear="allow_clear"'; } $field_content = ''; return $this->get_field( $field_data, $field_content ); } function get_coupon_selection_field( $field_data ) { $value = $field_data['value']; $multiple = ''; if ( isset( $field_data['multiple'] ) && $field_data['multiple'] ) { $multiple = ' multiple="multiple"'; } $allow_clear = ''; if ( isset( $field_data['allow_clear'] ) && $field_data['allow_clear'] ) { $allow_clear = ' data-allow_clear="allow_clear"'; } $field_content = ''; return $this->get_field( $field_data, $field_content ); } function get_page_selection_field( $field_data ) { $value = $field_data['value']; $multiple = ''; if ( isset( $field_data['multiple'] ) && $field_data['multiple'] ) { $multiple = 'multiple="multiple"'; } $field_content = ''; return $this->get_field( $field_data, $field_content ); } function get_section( $field_data ) { $field_html = '
    '; $field_html .= '
    '; $field_html .= ''; if ( isset( $field_data['help'] ) ) { $field_html .= ''; } $field_html .= '
    '; $field_html .= '
    '; return $field_html; } function get_description_field( $field_data ) { $field_html = '
    '; $field_html .= '
    '; $field_html .= $field_data['content']; $field_html .= '
    '; $field_html .= '
    '; return $field_html; } function get_checkout_field_repeater( $field_data ) { $value = array(); $value[0] = array( 'add_to' => '', 'type' => '', 'label' => '', 'name' => '', ); $field_content = ''; $field_content .= '
    '; // $field_content .= '
    '; // $field_content .= ''; // $field_content .= '
    '; $field_content .= '
    '; $field_content .= '
    '; foreach ( $value as $p_key => $p_data ) { $field_content .= '
    '; $field_content .= '
    '; $field_content .= 'Add New Custom Field'; $field_content .= '
    '; $field_content .= '
    '; /* Add To */ $field_content .= '
    '; $field_content .= 'Add to'; $field_content .= ''; $field_content .= ''; $field_content .= ''; $field_content .= '
    '; /* Type */ $field_content .= '
    '; $field_content .= 'Type'; $field_content .= ''; $field_content .= ''; $field_content .= ''; $field_content .= '
    '; /* Textarea */ $field_content .= '
    '; $field_content .= 'Options *'; $field_content .= ''; $field_content .= ''; $field_content .= ''; $field_content .= '
    '; /* Label */ $field_content .= '
    '; $field_content .= 'Label *'; $field_content .= ''; $field_content .= ''; $field_content .= ''; $field_content .= '
    '; /* Name */ $field_content .= '
    '; $field_content .= 'Name *'; $field_content .= ''; $field_content .= ''; $field_content .= ''; $field_content .= '
    '; $field_content .= '
    '; $field_content .= '
    '; } /* Add New Custom Field */ $field_content .= '
    '; $field_content .= '
    '; $field_content .= ''; $field_content .= '
    '; $field_content .= '
    '; /* End Add new custom field */ $field_content .= '
    '; $field_content .= '
    '; $field_content .= '
    '; return $field_content; } function get_pro_checkout_field_repeater( $field_data ) { $value = array(); $value[0] = array( 'add_to' => '', 'type' => '', 'label' => '', 'name' => '', ); $field_content = ''; $field_content .= '
    '; // $field_content .= '
    '; // $field_content .= ''; // $field_content .= '
    '; $field_content .= '
    '; $field_content .= '
    '; foreach ( $value as $p_key => $p_data ) { $field_content .= '
    '; $field_content .= '
    '; $field_content .= 'Add New Custom Field'; $field_content .= '
    '; $field_content .= '
    '; /* Add To */ $field_content .= '
    '; $field_content .= 'Add to'; $field_content .= ''; $field_content .= ''; $field_content .= ''; $field_content .= '
    '; /* Type */ $field_content .= '
    '; $field_content .= 'Type'; $field_content .= ''; $field_content .= ''; $field_content .= ''; $field_content .= '
    '; /* Label */ $field_content .= '
    '; $field_content .= 'Label *'; $field_content .= ''; $field_content .= ''; $field_content .= ''; $field_content .= ''; $field_content .= '
    '; /* Default */ $field_content .= '
    '; $field_content .= 'Default'; $field_content .= ''; $field_content .= ''; $field_content .= ''; $field_content .= ''; $field_content .= '
    '; /* Placeholder */ $field_content .= '
    '; $field_content .= 'Placeholder'; $field_content .= ''; $field_content .= ''; $field_content .= ''; $field_content .= ''; $field_content .= '
    '; /* Options */ $field_content .= '
    '; $field_content .= 'Options *'; $field_content .= ''; $field_content .= ''; $field_content .= ''; $field_content .= '
    '; /* Width */ $field_content .= '
    '; $field_content .= 'Width'; $field_content .= ''; $field_content .= ''; $field_content .= ''; $field_content .= '
    '; /* Required */ $field_content .= '
    '; $field_content .= 'Required'; $field_content .= ''; $field_content .= ''; $field_content .= ''; $field_content .= ''; $field_content .= ''; $field_content .= '
    '; $field_content .= '
    '; $field_content .= '
    '; } /* Add New Custom Field */ $field_content .= '
    '; $field_content .= '
    '; $field_content .= ''; $field_content .= '
    '; $field_content .= '
    '; /* End Add new custom field */ $field_content .= '
    '; $field_content .= '
    '; $field_content .= '
    '; return $field_content; } function get_product_selection_repeater( $field_data ) { $value = $field_data['value']; if ( ! is_array( $value ) ) { $value[0] = array( 'product' => '', ); } else { if ( ! isset( $value[0] ) ) { $value[0] = array( 'product' => '', ); } } $field_html = ''; $field_html .= ''; $field_html .= '
    '; $field_html .= '
    '; $field_html .= '
    '; if ( is_array( $value ) ) { foreach ( $value as $p_key => $p_data ) { $selected_options = ''; if ( isset( $p_data['product'] ) ) { $product = wc_get_product( $p_data['product'] ); // posts. if ( ! empty( $product ) ) { $post_title = $product->get_name() . ' (#' . $p_data['product'] . ')'; $selected_options = ''; } } $field_html .= $this->generate_product_repeater_html( $p_key, $selected_options ); } } $field_html .= '
    '; $field_html .= '
    '; $field_html .= ''; $field_html .= '
    '; $field_html .= '
    '; $field_html .= '
    '; $field_html .= '
    '; $field_html .= '
    '; return $field_html; } function generate_product_repeater_html( $id, $options = '' ) { $field_html = '
    '; $field_html .= '
    '; /* Product Name */ $field_html .= '
    '; $field_html .= ''; $field_html .= ''; $field_html .= ''; $field_html .= ''; $field_html .= ''; $field_html .= ''; $field_html .= ''. __( 'Remove', 'cartflows' ).''; $field_html .= ''; $field_html .= ''; $field_html .= '
    '; $field_html .= '
    '; $field_html .= '
    '; return $field_html; } function get_image_field( $field_data ) { $value = $field_data['value']; $attr = ''; if ( isset( $field_data['attr'] ) && is_array( $field_data['attr'] ) ) { foreach ( $field_data['attr'] as $attr_key => $attr_value ) { $attr .= ' ' . $attr_key . '="' . $attr_value . '"'; } } $display_preview_box = ( isset( $value ) && '' != $value ) ? 'display:block;' : 'display:none'; $field_content = '
    '; if( isset( $value ) ){ $field_content .= ''; } $field_content .= '
    '; // $field_content .= ''; $field_content .= ''; $field_content .= ''; $display_remove_button = ( isset( $value ) && '' != $value ) ? 'display:inline-block; margin-left: 5px;' : 'display:none'; $field_content .= ''; return $this->get_field( $field_data, $field_content ); } /** * Localize variables in admin * * @param array $vars variables. */ function localize_vars( $vars ) { $ajax_actions = array( 'wcf_add_checkout_custom_field', 'wcf_pro_add_checkout_custom_field', 'wcf_delete_checkout_custom_field', 'wcf_json_search_pages', 'wcf_json_search_coupons' ); foreach ( $ajax_actions as $action ) { $vars[ $action . '_nonce' ] = wp_create_nonce( str_replace( '_', '-', $action ) ); } return $vars; } } // @codingStandardsIgnoreEnd