Estoy tratando de escribir una función específica que permita cambiar automáticamente la clase de envío del producto cuando un campo personalizado de WooCommerce se establece con un valor específico.
A continuación encontrará la captura de pantalla sobre los campos personalizados.
Este es el código que había pensado pero obviamente no funciona.
function woo_on_product_save( $post_id ) { $title = $product->get_meta( 'meta_easyfatt_libero_1' ); if ( $title = 'Trenta' ) { $shipping_class_id = 1182; } $product = wc_get_product( $post_id ); $product->set_shipping_class_id( $shipping_class_id ); $product->save(); } add_action( 'woocommerce_process_product_meta', 'woo_on_product_save', 100 );¡Cualquier sugerencia sería muy apreciada!
Tienes algunos errores menores
$product->get_meta(.. mientras que $product no está definido== , no =woocommerce_admin_process_product_object para guardar en lugar del obsoleto woocommerce_process_product_meta hookEntonces obtienes:
// Save function action_woocommerce_admin_process_product_object( $product ) { // Get meta $title = $product->get_meta( 'meta_easyfatt_libero_1' ); if ( $title == 'Trenta' ) { // The targeted shipping class ID to be set for the product $shipping_class_id = 1182; // Set the shipping class ID $product->set_shipping_class_id( $shipping_class_id ); } } add_action( 'woocommerce_admin_process_product_object', 'action_woocommerce_admin_process_product_object', 10, 1 );