php - WooCommerce Wordpress 插件问题

标签 php wordpress plugins woocommerce

出于某种原因,我的 CART 页面上显示了两个购物车总数。调试器中没有错误。

这是图片: cartpage

WooCommerce 有大量不同的文件。这是 cart-totals.php 页面。不确定这里是否有修复程序。

<?php
        /**
         * Cart totals
         *
         * This template can be overridden by copying it to yourtheme/woocommerce/cart/cart-totals.php.
         *
         * HOWEVER, on occasion WooCommerce will need to update template files and you (the theme developer).
         * will need to copy the new files to your theme to maintain compatibility. We try to do this.
         * as little as possible, but it does happen. When this occurs the version of the template file will.
         * be bumped and the readme will list any important changes.
         *
         * @see         http://docs.woothemes.com/document/template-structure/
         * @author      WooThemes
         * @package     WooCommerce/Templates
         * @version     2.3.6
         */

        if ( ! defined( 'ABSPATH' ) ) {
            exit;
        }

        ?>
        <div class="cart_totals <?php if ( WC()->customer->has_calculated_shipping() ) echo 'calculated_shipping'; ?>">

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

            <h2><?php _e( 'Cart Totals', 'woocommerce' ); ?></h2>

            <table cellspacing="0" class="shop_table shop_table_responsive">

                <tr class="cart-subtotal">
                    <th><?php _e( 'Subtotal', 'woocommerce' ); ?></th>
                    <td data-title="<?php _e( 'Subtotal', 'woocommerce' ); ?>"><?php wc_cart_totals_subtotal_html(); ?></td>
                </tr>

                <?php foreach ( WC()->cart->get_coupons() as $code => $coupon ) : ?>
                    <tr class="cart-discount coupon-<?php echo esc_attr( sanitize_title( $code ) ); ?>">
                        <th><?php wc_cart_totals_coupon_label( $coupon ); ?></th>
                        <td data-title="<?php wc_cart_totals_coupon_label( $coupon ); ?>"><?php wc_cart_totals_coupon_html( $coupon ); ?></td>
                    </tr>
                <?php endforeach; ?>

                <?php if ( WC()->cart->needs_shipping() && WC()->cart->show_shipping() ) : ?>

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

                    <?php wc_cart_totals_shipping_html(); ?>

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

                <?php elseif ( WC()->cart->needs_shipping() && 'yes' === get_option( 'woocommerce_enable_shipping_calc' ) ) : ?>

                    <tr class="shipping">
                        <th><?php _e( 'Shipping', 'woocommerce' ); ?></th>
                        <td data-title="<?php _e( 'Shipping', 'woocommerce' ); ?>"><?php woocommerce_shipping_calculator(); ?></td>
                    </tr>

                <?php endif; ?>

                <?php foreach ( WC()->cart->get_fees() as $fee ) : ?>
                    <tr class="fee">
                        <th><?php echo esc_html( $fee->name ); ?></th>
                        <td data-title="<?php echo esc_html( $fee->name ); ?>"><?php wc_cart_totals_fee_html( $fee ); ?></td>
                    </tr>
                <?php endforeach; ?>

                <?php if ( wc_tax_enabled() && 'excl' === WC()->cart->tax_display_cart ) :
                    $taxable_address = WC()->customer->get_taxable_address();
                    $estimated_text  = WC()->customer->is_customer_outside_base() && ! WC()->customer->has_calculated_shipping()
                            ? sprintf( ' <small>(' . __( 'estimated for %s', 'woocommerce' ) . ')</small>', WC()->countries->estimated_for_prefix( $taxable_address[0] ) . WC()->countries->countries[ $taxable_address[0] ] )
                            : '';

                    if ( 'itemized' === get_option( 'woocommerce_tax_total_display' ) ) : ?>
                        <?php foreach ( WC()->cart->get_tax_totals() as $code => $tax ) : ?>
                            <tr class="tax-rate tax-rate-<?php echo sanitize_title( $code ); ?>">
                                <th><?php echo esc_html( $tax->label ) . $estimated_text; ?></th>
                                <td data-title="<?php echo esc_html( $tax->label ); ?>"><?php echo wp_kses_post( $tax->formatted_amount ); ?></td>
                            </tr>
                        <?php endforeach; ?>
                    <?php else : ?>
                        <tr class="tax-total">
                            <th><?php echo esc_html( WC()->countries->tax_or_vat() ) . $estimated_text; ?></th>
                            <td data-title="<?php echo esc_html( WC()->countries->tax_or_vat() ); ?>"><?php wc_cart_totals_taxes_total_html(); ?></td>
                        </tr>
                    <?php endif; ?>
                <?php endif; ?>

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

                <tr class="order-total">
                    <th><?php _e( 'Total', 'woocommerce' ); ?></th>
                    <td data-title="<?php _e( 'Total', 'woocommerce' ); ?>"><?php wc_cart_totals_order_total_html(); ?></td>
                </tr>

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

            </table>

            <div class="wc-proceed-to-checkout">
                <?php do_action( 'woocommerce_proceed_to_checkout' ); ?>
            </div>

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

        </div>

那是直接从插件文件夹中的 WooCommerce。该主题还有一个 WooCommerce 文件夹。这是主题中的 cart.php 页面:

<?php
            /**
             * Cart Page
             *
             * @author      WooThemes
             * @package     WooCommerce/Templates
             * @version     2.1.0
             */

            if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

            global $woocommerce;

            wc_print_notices();

            do_action( 'woocommerce_before_cart' ); ?>

            <form action="<?php echo esc_url( WC()->cart->get_cart_url() ); ?>" method="post">

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

            <table class="shop_table cart" cellspacing="0">
                <thead>
                    <tr>
                        <th class="product-remove">&nbsp;</th>
                        <th class="product-thumbnail">&nbsp;</th>
                        <th class="product-name"><?php _e( 'Product', 'woocommerce' ); ?></th>
                        <th class="product-price"><?php _e( 'Price', 'woocommerce' ); ?></th>
                        <th class="product-quantity"><?php _e( 'Quantity', 'woocommerce' ); ?></th>
                        <th class="product-subtotal"><?php _e( 'Total', 'woocommerce' ); ?></th>
                    </tr>
                </thead>
                <tbody>
                    <?php do_action( 'woocommerce_before_cart_contents' ); ?>

                    <?php
                    foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
                        $_product     = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
                        $product_id   = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );

                        if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_cart_item_visible', true, $cart_item, $cart_item_key ) ) {
                            ?>
                            <tr class="<?php echo esc_attr( apply_filters( 'woocommerce_cart_item_class', 'cart_item', $cart_item, $cart_item_key ) ); ?>">

                                <td class="product-remove">
                                    <?php
                                        echo apply_filters( 'woocommerce_cart_item_remove_link', sprintf( '<a href="%s" class="remove" title="%s">&times;</a>', esc_url( WC()->cart->get_remove_url( $cart_item_key ) ), __( 'Remove this item', 'woocommerce' ) ), $cart_item_key );
                                    ?>
                                </td>

                                <td class="product-thumbnail">
                                    <?php
                                        $thumbnail = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key );

                                        if ( ! $_product->is_visible() )
                                            echo $thumbnail;
                                        else
                                            printf( '<a href="%s">%s</a>', $_product->get_permalink(), $thumbnail );
                                    ?>
                                </td>

                                <td class="product-name">
                                    <?php
                                        if ( ! $_product->is_visible() )
                                            echo apply_filters( 'woocommerce_cart_item_name', $_product->get_title(), $cart_item, $cart_item_key );
                                        else
                                            echo apply_filters( 'woocommerce_cart_item_name', sprintf( '<a href="%s">%s</a>', $_product->get_permalink(), $_product->get_title() ), $cart_item, $cart_item_key );

                                        // Meta data
                                        echo WC()->cart->get_item_data( $cart_item );

                                        // Backorder notification
                                        if ( $_product->backorders_require_notification() && $_product->is_on_backorder( $cart_item['quantity'] ) )
                                            echo '<p class="backorder_notification">' . __( 'Available on backorder', 'woocommerce' ) . '</p>';
                                    ?>
                                </td>

                                <td class="product-price">
                                    <?php
                                        echo apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key );
                                    ?>
                                </td>

                                <td class="product-quantity">
                                    <?php
                                        if ( $_product->is_sold_individually() ) {
                                            $product_quantity = sprintf( '1 <input type="hidden" name="cart[%s][qty]" value="1" />', $cart_item_key );
                                        } else {
                                            $product_quantity = woocommerce_quantity_input( array(
                                                'input_name'  => "cart[{$cart_item_key}][qty]",
                                                'input_value' => $cart_item['quantity'],
                                                'max_value'   => $_product->backorders_allowed() ? '' : $_product->get_stock_quantity(),
                                            ), $_product, false );
                                        }

                                        echo apply_filters( 'woocommerce_cart_item_quantity', $product_quantity, $cart_item_key );
                                    ?>
                                </td>

                                <td class="product-subtotal">
                                    <?php
                                        echo apply_filters( 'woocommerce_cart_item_subtotal', WC()->cart->get_product_subtotal( $_product, $cart_item['quantity'] ), $cart_item, $cart_item_key );
                                    ?>
                                </td>
                            </tr>
                            <?php
                        }
                    }

                    do_action( 'woocommerce_cart_contents' );
                    ?>
                    <tr>
                        <td colspan="6" class="actions">

                            <?php if ( WC()->cart->coupons_enabled() ) { ?>
                                <div class="coupon">

                                    <label for="coupon_code"><?php _e( 'Coupon', 'woocommerce' ); ?>:</label> <input name="coupon_code" class="input-text" id="coupon_code" value="" placeholder="<?php _e( 'Enter coupon code', 'woocommerce' ); ?>" /> <input type="submit" class="button" name="apply_coupon" value="<?php _e( 'Apply Coupon', 'woocommerce' ); ?>" />

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

                                </div>
                            <?php } ?>

                            <input type="submit" class="button" name="update_cart" value="<?php _e( 'Update Cart', 'woocommerce' ); ?>" /> <input type="submit" class="checkout-button button alt wc-forward" name="proceed" value="<?php _e( 'Proceed to Checkout', 'woocommerce' ); ?>" />

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

                            <?php wp_nonce_field( 'woocommerce-cart' ); ?>
                        </td>
                    </tr>

                    <?php do_action( 'woocommerce_after_cart_contents' ); ?>
                </tbody>
            </table>

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

            </form>

            <div class="cart-collaterals">

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

                <?php woocommerce_cart_totals(); ?>

                <?php woocommerce_shipping_calculator(); ?>

            </div>

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

最佳答案

在你的主题 cart.php 中

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

应该是:

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

关于php - WooCommerce Wordpress 插件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36880510/

相关文章:

php - 如何在 php < 5.3 上向当前日期时间添加 5 分钟

php - 同时执行两个查询

wordpress - AWS Route53 将 wordpress 子目录路由到不同的 EC2 实例

java - 将 Eclipse 控制台 View 输出导出到文本文件

jquery 插件 "DROP-DOWN LIST"添加 fontawesome 图标

php - MySQL 查询按特定结果/行在另一个表中的投票数对结果进行排序

php - 根据 Woocommerce 中的自定义购物车商品数据更改购物车商品价格

javascript - 将 html 和 js 添加到 wordpress

javascript - 如何将自定义 jQuery 插件应用于多个元素?

php - Symfony 3.4 在我的包中使用 View