Ich fand dieses Beispiel in der Dokumentation.
add_action('gform_register_init_scripts', 'gform_format_money');
function gform_format_money($form) {
$script = '(function($){' .
'$('.gf_money input').each(function(){' .
'$(this).val(gformFormatMoney($(this).val()));' .
'}).change(function(){' .
'$(this).val(gformFormatMoney($(this).val()));' .
'});' .
'})(jQuery);';
GFFormDisplay::add_init_script($form['id'], 'format_money', GFFormDisplay::ON_PAGE_RENDER, $script);
}
Das Problem bei diesem Beispiel ist, dass ich nicht die JS in meinen PHP-Dateien geschrieben gefällt und die add_init_script()
Funktion einen String mit JS als Argument benötigt.
konnte ich file_get_contents()
verwenden Sie die JS aus der Datei zu erhalten, aber dann werde ich nicht in der Lage sein, um das Skript zu lokalisieren, um die AJAX-URL zu injizieren.
Ich benutze jetzt den Haken wie in der Frage und es funktioniert perfekt.
add_action('gform_register_init_scripts', function() {
add_action('wp_enqueue_scripts', function() {
wp_enqueue_script('postcode', get_bloginfo('stylesheet_directory') . '/modules/Postcode/assets/js/postcode.js', array('jquery'));
wp_localize_script('postcode', 'ajax_object', array('ajax_url' => admin_url('admin-ajax.php')));
});
});