Dnešní snippet umožňuje nastavit jakémukoliv poli na pokladně atribut disabled.
Když budete hledat, jak nastavit pole jako disabled, najdete většinou jen postupy, které pomocí javascriptu přidají inputu atribut.
Naštěstí je možné použít filtr, který vám umožní vstoupit přímo do pole atributů každého pole na pokladně.
Sice atribut disabled v seznamu není, ale můžete využít custom_attributes, pomocí kterého můžete přidávat vlastní atributy, jako je právě disabled, nebo data atributy.
Samotný snippet je jednoduchý:
add_filter( 'woocommerce_form_field_args', 'musilda_billing_country', 10, 3 );
function musilda_billing_country( $args, $key, $value ) {
if ( 'billing_country' === $key ) {
if ( !empty( $args['custom_attributes'] ) && is_array( $args['custom_attributes'] ) ) {
$args['custom_attributes']['disabled'] = 'disabled';
} else {
$args['custom_attributes'] = array( 'disabled' => 'disabled' );
}
}
return $args;
}
Filtr je volán ve funkci woocommerce_form_field a ta je používána při procházení všech billing a shipping inputů, takže musíte zjistit pomocí $key, zda se jedná o tan input, který potřebujete.
Výhoda tohoto filtru je, že se úprava projeví i ve formuláři v nastavení účtu uživatele.