Я создал пользовательский флажок для продукта администратора, и если этот флажок активен, я хотел бы заменить кнопку «Добавить в корзину» для этих продуктов на любой странице архива / категории магазина на «Просмотреть продукт», и кнопка должна принятьзритель на странице продукта.
Другие элементы магазина, у которых флажок не активен, должны вести себя нормально и отображать кнопку «Добавить в корзину» с сохранением их функциональности.
У меня есть флажок, работающий на стороне администратора без проблем со следующим кодом:
// Display Checkbox
add_action('woocommerce_product_options_general_product_data', 'product_custom_fields_add');
function product_custom_fields_add(){
global $post;
echo '<div class="product_custom_field">';
// Custom Product Checkbox Field
woocommerce_wp_checkbox( array(
'id' => '_no_addcart_product',
'desc' => __('show or hide add to cart', 'woocommerce'),
'label' => __('Hide Add To Cart', 'woocommerce'),
'desc_tip' => 'true'
));
echo '</div>';
}
// Save Checkbox
add_action('woocommerce_process_product_meta', 'product_custom_fields_save');
function product_custom_fields_save($post_id){
// Custom Product Text Field
$no_addcart_product = isset( $_POST['_no_addcart_product'] ) ? 'yes' : 'no';
update_post_meta($post_id, '_no_addcart_product', esc_attr( $no_addcart_product ));
}
Я пришел с этим кодом ниже, чтобы попытаться добавить условие if на основестатус флажка.
add_filter( 'woocommerce_loop_add_to_cart_link', 'replacing_add_to_cart_button', 10, 2 );
function replacing_add_to_cart_button( $button, $product ) {
if ( $product->get_meta('_no_addcart_product') === 'yes' )
$button_text = __("View product", "woocommerce");
$button = '<a class="button" href="'. $product->get_permalink().'">' . $button_text.'</a>';
return $button;
}
Работает частично при изменении текста кнопки и ссылки для любого продукта, у которого флажок активен правильно.Однако проблема в том, что он также удаляет текст из всех других элементов магазина и оставляет пустую кнопку для любого элемента, у которого не активирован флажок (см. Изображение ниже).Ссылки на эти продукты также изменяются на страницы продуктов, а не на «Добавить в корзину», как я хотел бы, чтобы они оставались.
![Empty Buttons](https://i.stack.imgur.com/z6u9y.jpg)
У меня естьПрочитайте множество тем, которые глобально меняют кнопку для всех продуктов, но не смогли найти никакой условной логики, применяемой только к определенным продуктам, которая могла бы помочь мне разобраться в этом.Так что любая помощь будет принята с благодарностью.Большое спасибо заранее.