PATH:
home
/
sarkas88.com
/
public_html
/
wp-content
/
plugins
/
wordpress-seo
/
src
/
integrations
/
third-party
<?php namespace Yoast\WP\SEO\Integrations\Third_Party; use Yoast\WP\SEO\Conditionals\Migrations_Conditional; use Yoast\WP\SEO\Conditionals\WooCommerce_Conditional; use Yoast\WP\SEO\Helpers\Indexable_Helper; use Yoast\WP\SEO\Integrations\Integration_Interface; /** * The permalink watcher. */ class Woocommerce_Permalinks implements Integration_Interface { /** * Represents the indexable helper. * * @var Indexable_Helper */ protected $indexable_helper; /** * Returns the conditionals based in which this loadable should be active. * * @return array */ public static function get_conditionals() { return [ WooCommerce_Conditional::class, Migrations_Conditional::class ]; } /** * Constructor. * * @param Indexable_Helper $indexable_helper Indexable Helper. */ public function __construct( Indexable_Helper $indexable_helper ) { $this->indexable_helper = $indexable_helper; } /** * Registers the hooks. * * @codeCoverageIgnore * * @return void */ public function register_hooks() { \add_filter( 'wpseo_post_types_reset_permalinks', [ $this, 'filter_product_from_post_types' ] ); \add_action( 'update_option_woocommerce_permalinks', [ $this, 'reset_woocommerce_permalinks' ], 10, 2 ); } /** * Filters the product post type from the post type. * * @param array $post_types The post types to filter. * * @return array The filtered post types. */ public function filter_product_from_post_types( $post_types ) { unset( $post_types['product'] ); return $post_types; } /** * Resets the indexables for WooCommerce based on the changed permalink fields. * * @param array $old_value The old value. * @param array $new_value The new value. * * @return void */ public function reset_woocommerce_permalinks( $old_value, $new_value ) { $changed_options = \array_diff( $old_value, $new_value ); if ( \array_key_exists( 'product_base', $changed_options ) ) { $this->indexable_helper->reset_permalink_indexables( 'post', 'product' ); } if ( \array_key_exists( 'attribute_base', $changed_options ) ) { $attribute_taxonomies = $this->get_attribute_taxonomies(); foreach ( $attribute_taxonomies as $attribute_name ) { $this->indexable_helper->reset_permalink_indexables( 'term', $attribute_name ); } } if ( \array_key_exists( 'category_base', $changed_options ) ) { $this->indexable_helper->reset_permalink_indexables( 'term', 'product_cat' ); } if ( \array_key_exists( 'tag_base', $changed_options ) ) { $this->indexable_helper->reset_permalink_indexables( 'term', 'product_tag' ); } } /** * Retrieves the taxonomies based on the attributes. * * @return array The taxonomies. */ protected function get_attribute_taxonomies() { $taxonomies = []; foreach ( \wc_get_attribute_taxonomies() as $attribute_taxonomy ) { $taxonomies[] = \wc_attribute_taxonomy_name( $attribute_taxonomy->attribute_name ); } $taxonomies = \array_filter( $taxonomies ); return $taxonomies; } }
[-] exclude-woocommerce-post-types.php
[open]
[-] woocommerce-post-edit.php
[open]
[-] bbpress.php
[open]
[-] wpml-wpseo-notification.php
[open]
[-] jetpack.php
[open]
[-] wpml.php
[open]
[-] exclude-elementor-post-types.php
[open]
[-] web-stories.php
[open]
[-] woocommerce.php
[open]
[-] wincher-publish.php
[open]
[-] woocommerce-permalinks.php
[open]
[-] web-stories-post-edit.php
[open]
[-] elementor.php
[open]
[+]
..
[-] amp.php
[open]
[-] w3-total-cache.php
[open]