link. */ public function adjacent_rel_url( $link, $rel, $presentation = null ) { if ( ! $this->woocommerce_helper->is_shop_page() ) { return $link; } if ( $rel !== 'next' && $rel !== 'prev' ) { return $link; } $url = $this->get_shop_paginated_link( $rel, $presentation ); if ( $url ) { return $url; } return $link; } /** * Adds a breadcrumb for the shop page. * * @param Indexable[] $indexables The array with indexables. * * @return Indexable[] The indexables to be shown in the breadcrumbs, with the shop page added. */ public function add_shop_to_breadcrumbs( $indexables ) { $shop_page_id = $this->woocommerce_helper->get_shop_page_id(); if ( ! \is_int( $shop_page_id ) || $shop_page_id < 1 ) { return $indexables; } foreach ( $indexables as $index => $indexable ) { if ( $indexable->object_type === 'post-type-archive' && $indexable->object_sub_type === 'product' ) { $shop_page_indexable = $this->repository->find_by_id_and_type( $shop_page_id, 'post' ); if ( \is_a( $shop_page_indexable, Indexable::class ) ) { $indexables[ $index ] = $shop_page_indexable; } } } return $indexables; } /** * Returns the ID of the WooCommerce shop page when the currently opened page is the shop page. * * @param int $page_id The page id. * * @return int The Page ID of the shop. */ public function get_page_id( $page_id ) { if ( ! $this->woocommerce_helper->is_shop_page() ) { return $page_id; } return $this->woocommerce_helper->get_shop_page_id(); } /** * Handles the title. * * @param string $title The title. * @param Indexable_Presentation|null $presentation The indexable presentation. * * @return string The title to use. */ public function title( $title, $presentation = null ) { $presentation = $this->ensure_presentation( $presentation ); if ( $presentation->model->title ) { return $title; } if ( ! $this->woocommerce_helper->is_shop_page() ) { return $title; } if ( ! \is_archive() ) { return $title; } $shop_page_id = $this->woocommerce_helper->get_shop_page_id(); if ( $shop_page_id < 1 ) { return $title; } $product_template_title = $this->get_product_template( 'title-product', $shop_page_id ); if ( $product_template_title ) { return $product_template_title; } return $title; } /** * Handles the meta description. * * @param string $description The title. * @param Indexable_Presentation|null $presentation The indexable presentation. * * @return string The description to use. */ public function description( $description, $presentation = null ) { $presentation = $this->ensure_presentation( $presentation ); if ( $presentation->model->description ) { return $description; } if ( ! $this->woocommerce_helper->is_shop_page() ) { return $description; } if ( ! \is_archive() ) { return $description; } $shop_page_id = $this->woocommerce_helper->get_shop_page_id(); if ( $shop_page_id < 1 ) { return $description; } $product_template_description = $this->get_product_template( 'metadesc-product', $shop_page_id ); if ( $product_template_description ) { return $product_template_description; } return $description; } /** * Uses template for the given option name and replace the replacement variables on it. * * @param string $option_name The option name to get the template for. * @param string $shop_page_id The page id to retrieve template for. * * @return string The rendered value. */ protected function get_product_template( $option_name, $shop_page_id ) { $template = $this->options->get( $option_name ); $page = \get_post( $shop_page_id ); return $this->replace_vars->replace( $template, $page ); } /** * Get paginated link for shop page. * * @param string $rel Link relationship, prev or next or curr. * @param Indexable_Presentation|null $presentation The indexable presentation. * * @return string|null The link. */ protected function get_shop_paginated_link( $rel, $presentation = null ) { $presentation = $this->ensure_presentation( $presentation ); $permalink = $presentation->permalink; if ( ! $permalink ) { return null; } $current_page = \max( 1, $this->pagination_helper->get_current_archive_page_number() ); if ( $rel === 'curr' && $current_page === 1 ) { return $permalink; } if ( $rel === 'curr' && $current_page > 1 ) { return $this->pagination_helper->get_paginated_url( $permalink, $current_page ); } if ( $rel === 'prev' && $current_page === 2 ) { return $permalink; } if ( $rel === 'prev' && $current_page > 2 ) { return $this->pagination_helper->get_paginated_url( $permalink, ( $current_page - 1 ) ); } if ( $rel === 'next' && $current_page < $this->pagination_helper->get_number_of_archive_pages() ) { return $this->pagination_helper->get_paginated_url( $permalink, ( $current_page + 1 ) ); } return null; } /** * Ensures a presentation is available. * * @param Indexable_Presentation $presentation The indexable presentation. * * @return Indexable_Presentation The presentation, taken from the current page if the input was invalid. */ protected function ensure_presentation( $presentation ) { if ( \is_a( $presentation, Indexable_Presentation::class ) ) { return $presentation; } $context = $this->context_memoizer->for_current_page(); return $context->presentation; } } Produits Archive | Superette Antonia

No products in the cart.

Nos Rayons

Show

CACHACA 70CL

CFA 11.200

Dattes Sultana 1kg

CFA 3.400

FERERRO ROCHER T3

CFA 1.500

FERRERO ROCHER T25

CFA 12.300

FERRERO ROCHER T28

CFA 14.900

FERRERO ROCHER T8

CFA 4.200

FERRERO ROCHER TABLETTE NOISETTE NOIRE

CFA 2.200

KINDER CHOCOLATE 100G

CFA 1.950

KINDER CHOCOLATE 50G

CFA 1.000

KINDER JOY 20G

CFA 700

M&M’S

CFA 700
Showing 12 of 25 items
Load More