Definir o preço do item do carrinho de um preço personalizado do campo de entrada oculto no Woocommerce 3

No Woocommerce, eu useijQuery para calcular um preço personalizado em uma única página do produto e agora é necessário passar esse valor ao carrinho.

O comportamento desejado é passar o novo preço recuperado do campo oculto para o preço do item do carrinho.

Aqui está o meu código real:

// Hidden input field in single product page
add_action( 'woocommerce_before_add_to_cart_button', 'custom_hidden_product_field', 11, 0 );
function custom_hidden_product_field() {
    echo '<input type="hidden" id="hidden_field" name="custom_price" class="custom_price" value="">';
}


// The code to pass this data to the cart:
add_action( 'woocommerce_add_cart_item_data', 'save_custom_fields_data_to_cart', 10, 2 );
function save_custom_fields_data_to_cart( $cart_item_data, $product_id ) {

    if( ! empty( $_REQUEST['custom_price'] ) ) {
        // Set the custom data in the cart item
        $cart_item_data['custom_data']['custom_price'] = $_REQUEST['custom_price'];
        $data = array( 'custom_price' => $_REQUEST['custom_price'] );

        // below statement make sure every add to cart action as unique line item
        $cart_item_data['custom_data']['unique_key'] = md5( microtime().rand() );
        WC()->session->set( 'custom_data', $data );
    }
    return $cart_item_data;
}

E verifique os dois$data e$cart_item_data para ver que ambos retornam ocustom_price dados calculados na página.

No entanto, vou exibir o carrinho, e o valor do item de linha ainda é 0.

Eu estabeleci umvar igual aoWC()->session->set( 'custom_data', $data ); e depoisvar_dump para verificar, mas isso retornaNULL que pode ser apenas o que retorna, não tenho certeza porque nunca o usei.

Devo acrescentar também que tenho oregular_price no back-end do produto definido como 0. Quando eu apago isso (e deixo em branco), recebo de volta o erro:

Aviso: Um valor não numérico encontrado em C: \ xampp \ htdocs \ minha-transferência-fonte \ wp-conteúdo \ plugins \ woocommerce \ inclui \ class-wc-discount.php na linha 85

Gostaria de saber se eu perdi alguma coisa aqui, e se alguém poderia dar alguma luz sobre isso? obrigado

questionAnswers(1)

yourAnswerToTheQuestion