woocommerce_my_account requerido registro plugin personalizar para modificar formulario facturación editar detalles configurar campos campo agregar php wordpress woocommerce

php - requerido - woocommerce detalles de facturación



Cómo acceder al campo de facturación personalizado de WooCommerce en ganchos (1)

Encontré esto:

http://phpwpinfo.com/how-to-update-shipping-cost-in-cart-dynamically-based-on-a-custom-field-in-woocommerce/

Básicamente captura los datos de campo a través de JS y envía una solicitud Ajax al servidor que almacena el valor en la sesión. Luego agrega una tarifa adicional. No es exactamente lo que estaba buscando, pero es una solución funcional.

Estoy escribiendo una función personalizada de WordPress que cambiará el envío de tarifa plana cuando un cliente cambia el campo "Estado" de un menú de selección. Actualmente lo estoy haciendo en las funciones de mi tema.php

Creé un campo personalizado para representar el campo "Estado" como un menú desplegable en los campos de facturación. Utilicé el complemento "WooCommerce Checkout Manager" para configurar el campo personalizado y deshabilité el campo "Estado" predeterminado.

Ahora quiero cambiar el costo de envío según el valor de mi campo "Estado" personalizado. No puedo recuperar los datos del campo. También quiero saber qué gancho puedo usar para cambiar el envío de tarifa plana una vez que se cambia el valor de este campo.

He utilizado este enlace de filtro (woocommerce_package_rates) y no funciona.

Aquí está mi código para hacerlo, que obtuve de otro tutorial y luego hice mi personalización

function wc_ninja_change_flat_rates_cost( $rates, $package ) { $destination = $package[''destination'']; $city = $destination[''myfield12'']; // getting the city field value // Make sure flat rate is available if ( isset( $rates[''flat_rate''] ) ) { if ( $city == ''Alex'' || $city == ''الإسكندرية'' ) { // Set flat rate to cost $10 more $rates[''flat_rate'']->cost = 30; } else { $rates[''flat_rate'']->cost = 20; } } return $rates; } add_filter( ''woocommerce_package_rates'', ''wc_ninja_change_flat_rates_cost'', 10, 2 );