Я работаю над плагином WordPress для WooCommerce. Мне нужно перезаписать блоки адресов доставки и платежного адреса в форме оформления заказа, поскольку в моей стране адреса разные.
Я искал документацию WooCommerce, искал переполнение стека и задавал вопросы LLM. Все, что я смог найти, это либо хуки, которые никогда не вызываются, либо предложения сделать это с помощью JavaScript. Решения JavaScript хрупкие, поскольку они полагаются на неизменяемые атрибуты id и class HTML WooCommerce. Он также может конфликтовать с другим JavaScript, который манипулирует DOM, сейчас или в будущем.
н.б. Этого нельзя сделать из темы для моего варианта использования, поскольку я не могу контролировать, какие темы будет устанавливать конечный пользователь. Пожалуйста, не предлагайте этого.






Нашел:
register_block_type('woocommerce/checkout-shipping-address-block', array(
'render_callback' => 'my_test_function',
));
function my_test_function( $attributes, $content ) {
return '<h1>TODO: write a shipping address block</h1>';
}
Понятия не имею, почему я не мог понять это в течение нескольких дней, а затем решил это вскоре после публикации вопроса о переполнении стека, но обещаю, что сделал это не нарочно.