Я пытаюсь настроить WordPress Jigoshop в соответствии с потребностями моего клиента, и я немного застрял. Мне нужно: когда выбран вариант продукта, некоторые дополнительные опции отображаются в виде переключателей, которые должны выбрать клиенты. Мне удалось заставить все работать, но теперь мне нужно отправить выбранный переключатель в корзину, чек и т. Д., Когда нажата кнопка отправки.
Я пытаюсь использовать их функцию настройки продукта, чтобы сделать это, и их функция:
if (!function_exists('jigoshop_product_customize_panel')) { function jigoshop_product_customize_panel() { global $_product; if ( isset( $_POST['Submit'] ) && $_POST['Submit'] == 'Save Personalization' ) { $custom_products = (array) jigoshop_session::instance()->customized_products; $custom_products[$_POST['customized_id']] = trim( wptexturize( $_POST['jigoshop_customized_product'] )); jigoshop_session::instance()->customized_products = $custom_products; } if ( get_post_meta( $_product->ID , 'customizable', true ) == 'yes' ) : $custom_products = (array) jigoshop_session::instance()->customized_products; $custom = isset( $custom_products[$_product->ID] ) ? $custom_products[$_product->ID] : ''; $custom_length = get_post_meta( $_product->ID , 'customized_length', true ); $length_str = $custom_length == '' ? '' : sprintf( __( 'You may enter a maximum of %s characters.', 'jigoshop' ), $custom_length ); echo '<div class="panel" id="tab-customize">'; echo '<p>' . apply_filters('jigoshop_product_customize_heading', __('Enter your personal information as you want it to appear on the product.<br />'.$length_str, 'jigoshop')) . '</p>'; ?> <form action="" method="post"> <input type="hidden" name="customized_id" value="<?php echo esc_attr( $_product->ID ); ?>" /> <?php if ( $custom_length == '' ) : ?> <textarea id="jigoshop_customized_product" name="jigoshop_customized_product" cols="60" rows="4"><?php echo esc_textarea( $custom ); ?> </textarea> <?php else : ?> <input type="text" id="jigoshop_customized_product" name="jigoshop_customized_product" size="<?php echo $custom_length; ?>" maxlength="<?php echo $custom_length; ?>" value="<?php echo esc_attr( $custom ); ?>" /> <?php endif; ?> <p class="submit"><input name="Submit" type="submit" class="button-alt add_personalization" value="<?php _e( "Save Personalization", 'jigoshop' ); ?>" /></p> </form> <?php echo '</div>'; endif; } }
Я попытался изменить их функцию в соответствии с моими потребностями, и это то, что я придумал (где get_cod – это идентификатор и имя скрытого ввода, а «Adauga in cos» – значение моей кнопки отправки):
if (!function_exists('salveaza_cod_material')) { function salveaza_cod_material() { global $_product; if ( isset( $_POST['submit']) && $_POST('submit') == 'Adauga in cos') { $custom_products = (array) jigoshop_session::instance()->customized_products; $custom_products[$_POST['customized_id']] = trim( wptexturize( $_POST['get_cod'] )); jigoshop_session::instance()->customized_products = $custom_products; } $custom_products = (array) jigoshop_session::instance()->customized_products; $custom = isset( $custom_products[$_product->ID] ) ? $custom_products[$_product->ID] : ''; }}
Однако значение не отправляется на следующую страницу. Кто-нибудь может помочь? Ура!
Вот обновление, содержащее больше кода:
<form action="<?php echo esc_url( $_product->add_to_cart_url() ); ?>" class="variations_form cart" method="post"> <fieldset class="variations"> <?php foreach ( $attributes as $name => $options ): ?> <?php $sanitized_name = sanitize_title( $name ); ?> <div> <span class="select_label"><?php echo jigoshop_product::attribute_label('pa_'.$name); ?></span> <select id="<?php echo esc_attr( $sanitized_name ); ?>" name="tax_<?php echo $sanitized_name; ?>"> <option value=""><?php echo __('Choose an option ', 'jigoshop') ?>…</option> <?php foreach ( $options as $value ) : ?> <?php if ( taxonomy_exists( 'pa_'.$sanitized_name )) : ?> <?php $term = get_term_by( 'slug', $value, 'pa_'.$sanitized_name ); ?> <option value="<?php echo esc_attr( $term->slug ); ?>"><?php echo $term->name; ?> </option> <?php else : ?> <option value="<?php echo esc_attr( sanitize_title( $value ) ); ?>"><?php echo $value; ?></option> <?php endif;?> <?php endforeach; ?> </select> </div> <?php endforeach;?> </fieldset> <div id="piele-neagra" class="colors" style="display:none"> <ul class="materiale"> <li><input type="radio" name="piele-neagra" value="L73"> <p><img class="alignnone size-full wp-image-155" title="L73" src="http://img.ruphp.com/php/L73.gif" alt="L73" width="72" height="72" /></p> </li> </ul> </div> <div id="stofa-mf" class="colors" style="display:none"> <ul class="materiale"> <li><input type="radio" name="tapiterie" value="MF01" /> ... <div id="stofa-rg" class="colors" style="display:none"> Stofa RG</div> <div class="clear"></div> <span id="cod_material"><?php echo esc_attr( $custom ); ?></span> <span><?php echo trim( wptexturize( $_POST['get_cod'] )); ?></span> <div class="single_variation"></div> <?php do_action('jigoshop_before_add_to_cart_form_button'); ?> <div class="variations_button" style="display:none;"> <input type="hidden" name="variation_id" value="" /> <input type="hidden" name="customized_id" value="<?php echo esc_attr( $_product->ID ); ?>" /> <input type="hidden" id="get_cod" name="get_cod" value="" /> <input type="hidden" name="product_id" value="<?php echo esc_attr( $post->ID ); ?>" /> <div class="quantity"><input name="quantity" value="1" size="4" title="Qty" class="input-text qty text" maxlength="12" /></div> <input type="submit" id="submit_cart" class="button-alt" value="<?php esc_html_e('Add to cart', 'jigoshop'); ?>" /> </div> <?php do_action('salveaza_cod_material'); ?> <?php do_action('jigoshop_add_to_cart_form'); ?> </form>
И это часть тележки, которая получает значение:
if ( !empty( $values['variation_id'] )) { $product_id = $values['variation_id']; } else { $product_id = $values['product_id']; } $custom_products = (array) jigoshop_session::instance()->customized_products; $custom = isset( $custom_products[$product_id] ) ? $custom_products[$product_id] : ''; if ( ! empty( $custom_products[$product_id] ) ) : ?> <dl class="customization"> <dt class="customized_product_label"><?php echo apply_filters('jigoshop_customized_product_label', __('Personal: ','jigoshop') ); ?></dt> <dd class="customized_product"><?php echo esc_textarea( $custom ); ?></dd> </dl> <? php endif; ?>