我正在使用wordpress和woocommerce(电子商务插件)来自定义购物车。在我的functions.php中,我将数据存储在这样的变量中:

add_action( 'woocommerce_before_calculate_totals', 'add_custom_price' );

function add_custom_price( $cart_object ) {
    foreach ( $cart_object->cart_contents as $key => $value ) {
        $newVar = $value['data']->price;
    }
}

我需要能够在其他函数中使用$newVar,以便可以在页面的其他区域显示结果。例如,如果我具有以下功能,我将如何在其中使用$newVar
add_action( 'another_area', 'function_name' );

function function_name() {
    echo $newVar;
}

我怎样才能做到这一点?

最佳答案

您可以将变量设置为全局变量:

function add_custom_price( $cart_object ) {
    global $newVar;
    foreach ( $cart_object->cart_contents as $key => $value ) {
        $newVar = $value['data']->price;
    }
}

function function_name() {
    global $newVar;
    echo $newVar;
}

或者,如果$newVar在全局范围内已经可用,则可以执行以下操作:
function function_name($newVar) {
    echo $newVar;
}

// Add the hook
add_action( 'another_area', 'function_name' );

// Trigger the hook with the $newVar;
do_action('another_area', $newVar);

10-05 23:29