La función WordPress ACF Save Post, solo la necesita para activarse cuando la página guardada es un tipo de publicación personalizada. O, si el campo está presente?

1 minuto de lectura

Estoy tratando de manipular el my_acf_save_post función para hacer algunos cálculos y actualizar un campo con el número resultante. Esta parte está funcionando, los campos precio_completo_de_mercado y ejemplo_precio se utilizan para hacer ejercicio precio_calculado.

Hice esto hace algunos días, pero ahora tengo un problema cada vez que intento guardar una página o una publicación que no necesita esta función y no contiene los campos ACF. Entonces, cada sección del sitio web en lugar de solo la 1 que requiere estas matemáticas. Da como resultado varios errores y no puedo guardar las páginas correctamente.

¿Cómo puedo hacer que este fragmento de código solo funcione si la página que se guarda está dentro del tipo de publicación personalizada? ¿Entonces no romperá las otras páginas?

estoy intentando algo usando
if (is_single() && is_post_type('nameofposttype'))

sin embargo, parece que no puedo hacerlo bien, ¡PHP no es mi mejor opción! ¿Es una mejor manera de preguntar si los campos no existen, entonces no hacer nada?

Muchas gracias por cualquier ayuda o idea,

function my_acf_save_post( $post_id ) {

// get values
$fmp = get_field('full_market_price');
$saPercent = get_field('example_price');

// do something
$examplePrice = ($fmp / 100) * $saPercent;
update_field('calculated_price', $examplePrice, $post_id);

}

add_action('acf/save_post', 'my_acf_save_post', 20);

Acabo de encontrarme con un problema similar. Yo haría algo como:

function my_acf_save_post ($post_id) {

  // If not CPT, exit
  if (get_post_type($post_id) != 'nameofposttype') {
    return;
  }

  // Remainder of code
  ...

}
add_action('acf/save_post', 'my_acf_save_post', 20);

¿Ha sido útil esta solución?