'; echo sprintf( '

%s

', esc_attr( 'woo-feed-option-title' ), esc_html__( 'CUSTOM FIELDS by CTX Feed', 'woo-feed' ) ); foreach ( $custom_fields as $field_Key => $custom_field ) { if ( isset( $custom_field_settings[ $field_Key ] ) && 'enable' === $custom_field_settings[ $field_Key ] && 'text' === $custom_field[2] ) { //identifier meta value for old and new version users $custom_field_key_previous = sprintf( 'woo_feed_identifier_%s', strtolower( $field_Key ) ); $custom_field_value_previous = get_post_meta( get_the_ID(), $custom_field_key_previous, true ); $custom_field_key = sprintf( 'woo_feed_%s', strtolower( $field_Key ) ); $custom_field_value = get_post_meta( get_the_ID(), $custom_field_key, true ); if( empty( $custom_field_value ) && is_plugin_active( 'woocommerce-multilingual/wpml-woocommerce.php' )){ $originalId = apply_filters('woo_feed_original_post_id', get_the_ID() ); $custom_field_value = get_post_meta( $originalId, $custom_field_key, true ); } if ( empty( $custom_field_value ) && ! empty( $custom_field_value_previous ) ) { $custom_field_key = $custom_field_key_previous; $custom_field_value = $custom_field_value_previous; } $custom_field_id = esc_attr( wp_unslash( "woo_feed_$field_Key" ) ); $custom_field_label = esc_attr( wp_unslash( $custom_field[0] ) ); $custom_field_description = __( 'Set product ', 'woo-feed' ) . esc_html( $custom_field_label ) . __( ' here.', 'woo-feed' ); woocommerce_wp_text_input( array( 'id' => $custom_field_id, 'label' => $custom_field_label, 'placeholder' => $custom_field_label, 'desc_tip' => true, 'value' => esc_attr( wp_unslash( $custom_field_value ) ), 'description' => $custom_field_description, ) ); } } echo ''; } } /** * Set Custom Fields for Product Variations. * * @param $loop * @param $variation_data * @param $variation * * @return void */ public function set_custom_field_for_variation( $loop, $variation_data, $variation ) { $custom_field_settings = Settings::get( 'woo_feed_identifier' ); $custom_fields = CustomFieldHelper::get_fields(); if ( ! empty( $custom_field_settings ) && in_array( 'enable', $custom_field_settings, true ) ) { echo '
'; if ( ! empty( $custom_fields ) ) { echo '
'; echo "
"; echo sprintf( '

%s

', esc_attr( 'woo-feed-variation-option-title' ), esc_html__( 'CUSTOM FIELDS by CTX Feed', 'woo-feed' ) ); echo "
"; echo '
'; foreach ( $custom_fields as $field_Key => $custom_field ) { if ( isset( $custom_field_settings[ $field_Key ] ) && 'enable' === $custom_field_settings[ $field_Key ] && 'text' === $custom_field[2] ) { $custom_field_id = sprintf( 'woo_feed_%s_var[%d]', strtolower( $field_Key ), $variation->ID ); $custom_field_label = isset( $custom_field[0] ) ? $custom_field[0] : ''; $custom_field_description = sprintf( 'Set Variation %s here.', $custom_field_label ); //identifier meta value for old and new version users if ( metadata_exists( 'post', $variation->ID, 'woo_feed_' . strtolower( $field_Key ) . '_var' ) ) { $custom_field_key = sprintf( 'woo_feed_%s_var', strtolower( $field_Key ) ); } else { $custom_field_key = sprintf( 'woo_feed_identifier_%s_var', strtolower( $field_Key ) ); } woocommerce_wp_text_input( array( 'id' => $custom_field_id, 'value' => esc_attr( get_post_meta( $variation->ID, $custom_field_key, true ) ), 'placeholder' => esc_html( $custom_field_label ), 'label' => esc_html( $custom_field_label ), 'desc_tip' => true, 'description' => esc_html( $custom_field_description ), 'wrapper_class' => 'form-row form-row-full', ) ); } } echo '
'; } echo "
"; echo '
'; } } /** * Save Product Custom Field Value. * * @param int $post_id Product id. * * @return void */ public function save_custom_field_value( $post_id ) { $custom_fields = CustomFieldHelper::get_fields(); $set_meta_val = ''; if ( ! empty( $custom_fields ) ) { foreach ( $custom_fields as $key => $custom_field ) { $product_meta_key = "woo_feed_$key"; $new_meta_key = "woo_feed_identifier_$key"; $new_meta_val = get_post_meta( $post_id, $new_meta_key, true ); $old_meta_val = get_post_meta( $post_id, $product_meta_key, true ); if ( ! empty( $old_meta_val ) ) { $set_meta_val = $old_meta_val; } else { $set_meta_val = $new_meta_val; } if ( isset( $_POST[ $product_meta_key ] ) ) { $product_meta_value = sanitize_text_field( $_POST[ $product_meta_key ] ); } elseif ( isset( $_POST[ $new_meta_key ] ) ) { $product_meta_value = sanitize_text_field( $_POST[ $new_meta_key ] ); } else { $product_meta_value = $set_meta_val; } if ( isset( $product_meta_value ) && ! empty( $product_meta_value ) ) { update_post_meta( $post_id, $product_meta_key, $product_meta_value ); } else { delete_post_meta( $post_id, $product_meta_key ); } } } } /** * Save Product Variation Custom Field Value. * * @param int $post_id Variation id. * * @return void */ public function save_variation_custom_field_value( $post_id) { $custom_fields = woo_feed_product_custom_fields(); if ( ! empty( $custom_fields ) ) { foreach ( $custom_fields as $key => $value ) { $product_meta_key = "woo_feed_{$key}_var"; $new_meta_key = "woo_feed_identifier_{$key}_var"; $new_meta_val = get_post_meta( $post_id, $new_meta_key, true ); $old_meta_val = get_post_meta( $post_id, $product_meta_key, true ); if ( ! empty( $old_meta_val ) ) { $set_meta_val = $old_meta_val; } else { $set_meta_val = $new_meta_val; } if ( isset( $_POST[ $product_meta_key ][ $post_id ] ) ) { $product_meta_value = sanitize_text_field( $_POST[ $product_meta_key ][ $post_id ] ); } elseif ( isset( $_POST[ $new_meta_key ] [ $post_id ] ) ) { $product_meta_value = sanitize_text_field( $_POST[ $new_meta_key ][ $post_id ] ); } else { $product_meta_value = $set_meta_val; } if ( isset( $product_meta_value ) && ! empty( $product_meta_value ) ) { update_post_meta( $post_id, $product_meta_key, $product_meta_value ); }else { delete_post_meta( $post_id, $product_meta_key ); } } } } }