So, let’s assume you want to show product tab accordion in particular single product page. In such case, you can show accordion using our Porto filter.
Here is an example code.
Actions are similar to the filters. By using an action, you don’t edit or overwrite the core code because your code will rarely need to be changed.
If you’d like to learn how to convert Child Themes, you should use actions and filters as possible. you can show many actions and filters on following code.
Filters List
1. porto\footer\footer_tooltip.php
// Filters footer tooltip content.
apply_filters( 'porto_footer_tooltip', $tooltip_content );
2. porto\header\header_tooltip.php
// Filters header tooltip content.
apply_filters( 'porto_header_tooltip', $tooltip_content );
3. porto\inc\admin\customizer\header-builder.php
// Filters customizer header builder elements.
apply_filters( 'porto_header_elements', $elements );
4. porto\inc\admin\setup_wizard\speed_optimize_wizard.php
// Filters all shortcode list.
apply_filters( 'porto_all_shortcode_list', $shortcode_list );
// Filters all used shortcode list on site.
apply_filters( 'porto_used_shortcode_list', $used, $return_ids );
5. porto\inc\functions\class-dynamic-style.php
// Filters dynamic style internal css.
apply_filters( 'porto_dynamic_style_internal_output', $this->minify_css( $css ) );
6. porto\inc\functions\content_type.php
// Filters the meta value.
apply_filters( 'porto_get_meta_value_' . $meta_key, $value );
// Filters the page( portfolio, event, faq ) layout default settings. ( especially sidebar setting )
apply_filters( 'porto_meta_use_default', ( 'default' != $value ) ? true : false );
// Filters the page layout. ( includes portfolio, event, faq, 404page and so on )
apply_filters( 'porto_meta_layout', array( $value, $sidebar, $sidebar2 ) );
// Filters the default page layout. ( includes portfolio, event, faq, 404page and so on )
apply_filters( 'porto_meta_default_layout', $value );
// Filters the setting of sticky sidebar.
apply_filters( 'porto_meta_sticky_sidebar', $value );
// Filters the portfolio sub title.
apply_filters( 'porto_portfolio_sub_title', $output );
7. porto\inc\functions\general.php
// Filters template part path.
apply_filters( 'porto_get_template_part', $template, $slug, $name );
// Filters generate column classes for grid.
apply_filters( 'porto_generate_column_classes', $cols_arr, $cols, true );
// Filters mini screen size.
apply_filters( 'porto_mini_screen_size', 320 );
// Fitlers whether current page is product page or not.
apply_filters( 'porto_is_product', $result );
// Filters whether current page is shop page or not.
apply_filters( 'porto_is_shop', $result );
8. porto\inc\functions\layout.php
// Filters the porto header logo shortcode render.
apply_filters( 'porto_logo', ob_get_clean() );
// Filters the porto currency switcher shortcode render.
apply_filters( 'porto_currency_switcher', $result );
// Filters the porto mobile currency switcher shortcode render.
apply_filters( 'porto_mobile_currency_switcher', $result );
// Filters the porto view switcher shortcode render.
apply_filters( 'porto_view_switcher', $result );
// Filters the porto mobile view switcher shortcode render.
apply_filters( 'porto_mobile_view_switcher', $result );
// Filters the porto top navigation shortcode render.
apply_filters( 'porto_top_navigation', $output );
// Filters the porto mobile top navigation shortcode render.
apply_filters( 'porto_mobile_top_navigation', $output );
// Filters the porto main menu shortcode render.
apply_filters( 'porto_main_menu', $output );
// Filters the porto secondary menu shortcode render.
apply_filters( 'porto_secondary_menu', $output );
// Filters the porto main toggle menu shortcode render.
apply_filters( 'porto_main_toggle_menu', $output );
// Filters the porto header side menu shortcode render.
apply_filters( 'porto_header_side_menu', $output );
// Filters the whether site has sidebar menu or not.
apply_filters( 'porto_is_sidebar_menu', $have_sidebar_menu );
// Filters the sidebar menu shortcode render.
apply_filters( 'porto_sidebar_menu', $output );
// Filters the mobile menu shortcode render.
apply_filters( 'porto_mobile_menu', $output );
// Filters the search form shortcode render.
apply_filters( 'porto_search_form', $result );
// Filters the search form content shortcode render.
apply_filters( 'porto_search_form_content', ob_get_clean() );
// Filters the header socials shortcode render.
apply_filters( 'porto_header_socials', ob_get_clean() );
// Filters the minicart shortcode render.
apply_filters( 'porto_minicart', ob_get_clean() );
// Filters the page layout type. There are 3 types: boxed, wide, full.
apply_filters( 'porto_get_wrapper_type', $porto_settings['wrapper'] );
// Filters the header type.
apply_filters( 'porto_get_header_type', porto_header_type_is_preset() ? $porto_settings['header-type'] : '' );
// Filters the header builder layout.
apply_filters( 'porto_header_builder_current_layout', $porto_header_builder_layout );
// Filters the mini cart type. There are 4 types: simple, arrow-alt, inline, text.
apply_filters( 'porto_get_minicart_type', $minicart_type );
// Filters the blog id.
apply_filters( 'porto_get_blog_id', get_current_blog_id() );
// Filters the skin: dark or light
apply_filters( 'porto_is_dark_skin', ( isset( $porto_settings['css-type'] ) && 'dark' == $porto_settings['css-type'] ) );
9. porto\inc\functions\layout\breadcrumbs.php
// Filters the breadcrumb shortcode render.
apply_filters( 'porto_breadcrumbs', $output );
10. porto\inc\functions\layout\page-title.php
// Filters the page title.
apply_filters( 'porto_page_title', $output );
// Filters the page sub title.
apply_filters( 'porto_page_sub_title', $output );
11. porto\inc\functions\woocommerce.php
// Filters lazy load images.
apply_filters( 'porto_lazy_load_images', $thumb_image );
// Filters product short description length.
apply_filters( 'porto_woocommerce_short_description_length', 30 );
// Filters product stock html.
apply_filters( 'porto_woocommerce_stock_html', $availability_html, $availability['availability'], $product );
// Filters cart page type ( Type 1, Type 2 )
apply_filters( 'porto_filter_cart_version', $cart_ver );
// Filters checkout page type ( Type 1, Type 2 )
apply_filters( 'porto_filter_checkout_version', $checkout_ver );
12. porto\inc\lib\infinite-scroll\infinite-scroll.php
// Filters infinite scroll parameters.
apply_filters( 'porto_infinite_scroll_params', $params );
13. porto\inc\lib\live-search\live-search.php
// Filters ajax search query.
apply_filters( 'porto_ajax_search_query', sanitize_text_field( $_REQUEST['query'] ) );
// Filters post type on search form.
apply_filters( 'porto_ajax_search_post_type', $post_type );
// Filters ajax search function.
apply_filters( 'porto_ajax_search_function', 'get_posts', $search_query, $args );
14. porto\inc\lib\woocommerce-pre-order\classes\class-porto-pre-order-view.php
// Filters pre-order available date.
apply_filters( 'porto_pre_order_available_date', $available_date, $product_id ) )
15. porto\index.php
// Filters whether current page has skeleton option or not.
apply_filters( 'porto_skeleton_lazyload', $value );
16. porto\woocommerce\checkout\review-order.php
// Filters product price html.
apply_filters( 'porto_get_price_html', WC()->cart->get_cart_subtotal() );
17. porto\woocommerce\content-product-cat.php
// Filters product filter categories list args.
apply_filters( 'porto_products_filter_categories_list_args', $list_args );
18. porto\woocommerce\myaccount\dashboard.php
// Filters account subpage.
apply_filters( 'porto_woocommerce_account_box_items', $account_arr );
19. porto\woocommerce\single-product\product-thumbnails.php
// Filters html after thumbnails on single product page.
apply_filters( 'porto_single_product_after_thumbnails', '' );
20. porto-functionality\builders\elements\header\elementor\menu-icon.php
// Filters mobile toggle shortcode render in header builder.
apply_filters( 'porto_header_builder_mobile_toggle', $html );
21. porto-functionality\builders\elements\product\init.php
// Filters product upsell args.
apply_filters( 'porto_woocommerce_upsell_display_args', $args );
22. porto-functionality\builders\init.php
// Filters template builder type( header, footer, single product, product archive, block, popup builder ).
apply_filters( 'porto_templates_builder_types', $this->builder_types );
// Filters default meta in new template builder.
apply_filters( 'porto_create_new_builder_meta', array() );
23. porto-functionality\builders\lib\class-condition.php
// Filters global var for porto builder.
apply_filters( 'porto_builder', array() );
24. porto-functionality\builders\views\condition_template.php
// Filters list of post types for display condition.
apply_filters( 'porto_builder_post_types', $post_types );
// Filters taxonomy array for display condition.
apply_filters( 'porto_builder_condition_types', $taxonomies );
25. porto-functionality\meta_boxes\lib\meta_fields.php
// Filters page metabox fields.
apply_filters( 'porto_view_meta_fields', $fields );
// Filters page skin metabox fields.( page background color, page js, page css and so on )
apply_filters( 'porto_skin_meta_fields', $return );
26. porto-functionality\shortcodes\lib\functions.php
// Filters presets of creative grid layouts.
apply_filters( 'porto_creative_grid_layouts', false, $layout );
27. porto-functionality\shortcodes\woo_templates\porto_products.php
// Filters whether products have sticky option or not in porto products shortcode.
apply_filters( 'porto_wooocommerce_products_shortcode_sticky_filter', false ) );
// Filters categories html render.
apply_filters( 'porto_wooocommerce_products_shortcode_categories_html', $category_html );
28. porto-functionality\shortcodes\woo_templates\porto_products_filter.php
// Filters products price range.
apply_filters( 'porto_products_filter_price_range', $steps );
// Filters products price range html(render).
apply_filters( 'porto_products_filter_price_range_html', $format_text, $step );