Я хотел бы добавить пользовательский флажок на страницу продукта woocommerce, которая скрывает кнопку «Добавить в корзину» в передней части.Я не хочу полностью исключать возможность покупки предмета (все равно хотел бы использовать прямое добавление в корзину для добавления товара в корзину и покупки), поэтому я не хочу использовать add_filter('woocommerce_is_purchasable', 'my_woocommerce_is_purchasable', 10, 2);
или аналогичные.
В настоящий момент я достиг:
Добавление пользовательского флажка
// 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 ));
}
, а также кнопки «Скрыть в корзину» в зависимости от фрагмента категории.
function remove_product_description_add_cart_button(){
global $product;
$category = 'hide';
if ( has_term( $category, 'product_cat', $product->id ) )
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
}
add_action('wp','remove_product_description_add_cart_button');
Оба вышеперечисленных прекрасно работают самостоятельно.Я терплю неудачу, пытаясь объединить их, просто чтобы удалить кнопку «Добавить в корзину», если флажок активен (мне также не требуется проверять категорию).Я собрал код ниже, надеясь, что он будет работать, но это не так.
function remove_product_description_add_cart_button() {
if ( is_product() && get_post_meta( $post->ID, '_no_addcart_product', true ) == 'yes' ) {
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
}
add_action('wp','remove_product_description_add_cart_button');
Большое спасибо заранее за любую помощь в правильном направлении.