Woocommerce将产品捆绑链接到分组产品下拉框

时间:2019-05-09 07:20:47

标签: php wordpress woocommerce dropdown grouped-table

因此,基本上,在我的wordpress网站上,我创建了一个woocommerce分组产品页面,其中包含三个产品捆绑包,因此当人们订购这些特定产品时,他们会在我们的系统中显示其组件。我对分组产品页面的表格格式不满意,因此将其更改为下拉框。问题是,当我选择一个产品并单击“添加到订单”时,它会显示“请选择要添加到购物车中的产品…”,因此我需要找出如何正确链接产品,以便它们实际添加到购物车中。 / p>

这是我使用的grouped.php。

<form class="cart grouped_form" action="<?php echo esc_url( apply_filters( 'woocommerce_add_to_cart_form_action', $product->get_permalink() ) ); ?>" method="post" enctype='multipart/form-data'>


    <?php
      $quantites_required      = false;
      $previous_post           = $post;
      $grouped_product_columns = apply_filters( 'woocommerce_grouped_product_columns', array(
        'quantity',
        'label',
        'price',
      ), $product );
      $options = '';
      foreach ( $grouped_products as $grouped_product_child ) {
        $post_object        = get_post( $grouped_product_child->get_id() );
        $quantites_required = $quantites_required || ( $grouped_product_child->is_purchasable() && ! $grouped_product_child->has_options() );
        $post               = $post_object; // WPCS: override ok.
        setup_postdata( $post );

        //echo '<div id="product-' . esc_attr( $grouped_product_child->get_id() ) . '" class="card woocommerce-grouped-product-list-item ' . esc_attr( implode( ' ', wc_get_product_class( '', $grouped_product_child->get_id() ) ) ) . '">';

        // Output columns for each product.
        foreach ( $grouped_product_columns as $column_id ) {
          do_action( 'woocommerce_grouped_product_list_before_' . $column_id, $grouped_product_child );
          if ($column_id === 'quantity'){
            do_action( 'woocommerce_before_add_to_cart_quantity' );
            $options .= '<option value="quantity[' . $grouped_product_child->get_id() . ']">' . $grouped_product_child->get_name() .$grouped_product_child->get_price_html(). '</option>';
            do_action( 'woocommerce_after_add_to_cart_quantity' );
          }
          // switch ( $column_id ) {

          //   case 'label':
          //     $value  = '<div class="card-title" for="product-' . esc_attr( $grouped_product_child->get_id() ) . '">';
          //     $value .= $grouped_product_child->is_visible() ? '<span>' . $grouped_product_child->get_name() . '</span>' : $grouped_product_child->get_name();
          //     $value .= '</div>';
          //     break;
          //   case 'price':
          //     $value = $grouped_product_child->get_price_html() . wc_get_stock_html( $grouped_product_child );
          //     break;
          //   case 'quantity':
          //     ob_start();

          //     if ( ! $grouped_product_child->is_purchasable() || $grouped_product_child->has_options() || ! $grouped_product_child->is_in_stock() ) {
          //       woocommerce_template_loop_add_to_cart();
          //     } elseif ( $grouped_product_child->is_sold_individually() ) {
          //       echo '<input type="checkbox" name="' . esc_attr( 'quantity[' . $grouped_product_child->get_id() . ']' ) . '" value="1" class="wc-grouped-product-add-to-cart-checkbox" />';
          //     } else {
          //       do_action( 'woocommerce_before_add_to_cart_quantity' );

          //       woocommerce_quantity_input( array(
          //         'input_name'  => 'quantity[' . $grouped_product_child->get_id() . ']',
          //         'input_value' => isset( $_POST['quantity'][ $grouped_product_child->get_id() ] ) ? wc_stock_amount( wc_clean( wp_unslash( $_POST['quantity'][ $grouped_product_child->get_id() ] ) ) ) : 0,
          //         'min_value'   => apply_filters( 'woocommerce_quantity_input_min', 0, $grouped_product_child ),
          //         'max_value'   => apply_filters( 'woocommerce_quantity_input_max', $grouped_product_child->get_max_purchase_quantity(), $grouped_product_child ),
          //       ) );

          //       do_action( 'woocommerce_after_add_to_cart_quantity' );
          //     }

          //     $value = ob_get_clean();
          //     break;
          //   default:
          //     $value = '';
          //     break;
          // }

          //echo '<div class="card-body woocommerce-grouped-product-list-item__' . esc_attr( $column_id ) . '">' . apply_filters( 'woocommerce_grouped_product_list_column_' . $column_id, $value, $grouped_product_child ) . '</div>'; // WPCS: XSS ok.

          do_action( 'woocommerce_grouped_product_list_after_' . $column_id, $grouped_product_child );
        }
       // echo '</div>';

      }
      ?>
      <div class="row">
        <div class="col-6 mb-3">
          <?php
          echo '<select class="multi-prod form-control">'.$options.'</select>';
          echo '<input type="hidden" class="input-text qty text" name="" value="">';
          $post = $previous_post; // WPCS: override ok.
          setup_postdata( $post );
          ?>
        </div>
      </div>

  <input type="hidden" name="add-to-cart" value="<?php echo esc_attr( $product->get_id() ); ?>" />

  <?php if ( $quantites_required ) : ?>

    <?php do_action( 'woocommerce_before_add_to_cart_button' ); ?>

    <button type="submit" class="single_add_to_cart_button button alt"><?php echo esc_html( $product->single_add_to_cart_text() ); ?></button>

    <?php do_action( 'woocommerce_after_add_to_cart_button' ); ?>

  <?php endif; ?>
</form>

<?php do_action( 'woocommerce_after_add_to_cart_form' ); ?>

0 个答案:

没有答案