【问题标题】:Change WooCommerce variable product title based on variations根据变化更改 WooCommerce 可变产品标题
【发布时间】:2017-12-22 12:23:32
【问题描述】:

我已在自定义选择框中对我的一组产品进行编码,这些产品会根据用户的选择更改价格。它运作良好,但现在我也需要根据他们的选择更改产品标题。

基本上,如果选择选项 1,产品名称将保持不变。但是如果选择了选项 2,我需要在产品标题的末尾添加“-RZ”。

我不确定是否可以在我更改价格的“woocommerce_before_calculate_totals”挂钩中执行此操作,但如果有人知道我应该使用的挂钩以及通过 PHP 访问当前产品标题的代码,那就太好了。

如果有用的话,这里是改变价格的代码:

function calculate_core_fee( $cart_object ) {
    if( !WC()->session->__isset( "reload_checkout" )) {
        /* core price */

        //echo $additionalPrice;
        //$additionalPrice = 100;
        foreach ( $cart_object->cart_contents as $key => $value ) {
            $product_id = $value['product_id'];
            if( isset( $value["addOn"] ) && $value["addOn"] == $product_id) {                
                    $additionalPrice = $value['core'];
                    /* Woocommerce 3.0 + */
                    $orgPrice = floatval( $value['data']->get_price() );
                    //echo $additionalPrice;
                    //echo $orgPrice;
                    $value['data']->set_price( $orgPrice + $additionalPrice );

            }
        }
    }
}
add_action( 'woocommerce_before_calculate_totals', 'calculate_core_fee', 99 );

我知道如果要执行此操作的挂钩位于购物车、结帐或订单页面而不是单个产品页面上,我可能必须获取名称并将其存储在 SESSION 变量中以供以后使用。

【问题讨论】:

    标签: php wordpress woocommerce cart variations


    【解决方案1】:

    是的,这在同一个钩子中是可能的。您可以使用类 WC_Product get_name()set_name() 方法来操作产品标题。但至于价格,您应该设置并获取自定义购物车字段值以使其(就像$additionalPrice = $value['core'];)。

    在这里看到一个简单的相关答案:Changing WooCommerce cart item names

    所以你可以有类似的东西(只是一个假的例子):

    // Get your custom field cart value for the user selection
    $userSelection = $value['user_selection'];
    // Get original title
    $originalTitle = $value['data']->get_name();
    // Conditionally set the new item title
    if($userSelection == 'option2')
        $value['data']->set_name( $originalTitle . '-RZ' );
    

    【讨论】:

    • 太棒了!谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2019-02-04
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多