wordpress 添加可选的额外费用以结帐

brccelvz  于 2022-12-18  发布在  WordPress
关注(0)|答案(1)|浏览(131)

我正在使用下面的代码来显示在“购物车”页面上添加额外费用(产品)到购物车的选项。它工作得很好,但它现在显示在购物车页面上,但我如何让它显示在结帐页面上另外:

<?php
/* ADD custom theme functions here  */
add_filter( 'woocommerce_price_trim_zeros', 'wc_hide_trailing_zeros', 10, 1 );
function wc_hide_trailing_zeros( $trim ) {
    return true;
}
add_action('woocommerce_cart_totals_after_shipping', 'wc_shipping_insurance_note_after_cart');
function wc_shipping_insurance_note_after_cart() {
global $woocommerce;
    $product_id = 971;
foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
    $_product = $values['data'];
    if ( $_product->id == $product_id )
        $found = true;
    }
    // if product not found, add it
if ( ! $found ):
?>
    <tr class="shipping">
        <th><?php _e( 'Gift wrapper', 'woocommerce' ); ?></th>
        <td><a href="<?php echo do_shortcode('[add_to_cart_url id="971"]'); ?>"><?php _e( 'Add ($3)' ); ?> </a></td>
    </tr>
<?php else: ?>
    <tr class="shipping">
        <th><?php _e( 'Gift wrapper', 'woocommerce' ); ?></th>
        <td>$3</td>
    </tr>
<?php endif;
}

我尝试过不同的方法,它应该是相当基本的,但我对我的functionsiderphp技能生疏。

2w3rbyxf

2w3rbyxf1#

你可以试着复制这个函数并给它一个新的名字,然后根据你想让它在结帐页面上的位置来改变钩子,下面是一个很好的关于结帐页面钩子的视觉指南:https://www.businessbloomer.com/woocommerce-visual-hook-guide-checkout-page/
试试这样的方法:
请注意我是如何将钩子从woocommerce_cart_totals_after_shipping更改为woocommerce_before_checkout_form的,您可以在这里尝试使用我链接到的指南上的钩子。我还将函数的名称从wc_shipping_insurance_note_after_cart更改为wc_shipping_insurance_note_after_checkout以避免冲突。

add_action('woocommerce_before_checkout_form', 'wc_shipping_insurance_note_after_checkout');
function wc_shipping_insurance_note_after_checkout() {
global $woocommerce;
    $product_id = 971;
foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
    $_product = $values['data'];
    if ( $_product->id == $product_id )
        $found = true;
    }
    // if product not found, add it
if ( ! $found ):
?>
    <tr class="shipping">
        <th><?php _e( 'Gift wrapper', 'woocommerce' ); ?></th>
        <td><a href="<?php echo do_shortcode('[add_to_cart_url id="971"]'); ?>"><?php _e( 'Add ($3)' ); ?> </a></td>
    </tr>
<?php else: ?>
    <tr class="shipping">
        <th><?php _e( 'Gift wrapper', 'woocommerce' ); ?></th>
        <td>$3</td>
    </tr>
<?php endif;
}

相关问题