Edit File by line
/home/zeestwma/richards.../wp-conte.../plugins/woocomme.../src/Internal/Integrat...
File: WPPostsImporter.php
<?php
[0] Fix | Delete
[1] Fix | Delete
declare( strict_types=1 );
[2] Fix | Delete
[3] Fix | Delete
namespace Automattic\WooCommerce\Internal\Integrations;
[4] Fix | Delete
[5] Fix | Delete
/**
[6] Fix | Delete
* Class WPPostsImporter
[7] Fix | Delete
*
[8] Fix | Delete
* @since 10.1.0
[9] Fix | Delete
*/
[10] Fix | Delete
class WPPostsImporter {
[11] Fix | Delete
[12] Fix | Delete
/**
[13] Fix | Delete
* Register the WP Posts importer.
[14] Fix | Delete
*
[15] Fix | Delete
* @return void
[16] Fix | Delete
*/
[17] Fix | Delete
public function register() {
[18] Fix | Delete
add_action( 'wp_import_posts', array( $this, 'register_product_attribute_taxonomies' ), 100, 1 );
[19] Fix | Delete
}
[20] Fix | Delete
[21] Fix | Delete
/**
[22] Fix | Delete
* Register product attribute taxonomies when importing posts via the WXR importer.
[23] Fix | Delete
*
[24] Fix | Delete
* @since 10.1.0
[25] Fix | Delete
*
[26] Fix | Delete
* @param array $posts The posts to process.
[27] Fix | Delete
* @return array
[28] Fix | Delete
*/
[29] Fix | Delete
public function register_product_attribute_taxonomies( $posts ) {
[30] Fix | Delete
if ( ! is_array( $posts ) || empty( $posts ) ) {
[31] Fix | Delete
return $posts;
[32] Fix | Delete
}
[33] Fix | Delete
[34] Fix | Delete
foreach ( $posts as $post ) {
[35] Fix | Delete
[36] Fix | Delete
if ( 'product' !== $post['post_type'] || empty( $post['terms'] ) ) {
[37] Fix | Delete
continue;
[38] Fix | Delete
}
[39] Fix | Delete
[40] Fix | Delete
foreach ( $post['terms'] as $term ) {
[41] Fix | Delete
if ( ! strstr( $term['domain'], 'pa_' ) ) {
[42] Fix | Delete
continue;
[43] Fix | Delete
}
[44] Fix | Delete
[45] Fix | Delete
if ( taxonomy_exists( $term['domain'] ) ) {
[46] Fix | Delete
continue;
[47] Fix | Delete
}
[48] Fix | Delete
[49] Fix | Delete
$attribute_name = wc_attribute_taxonomy_slug( $term['domain'] );
[50] Fix | Delete
[51] Fix | Delete
// Create the taxonomy.
[52] Fix | Delete
if ( ! in_array( $attribute_name, wc_get_attribute_taxonomies(), true ) ) {
[53] Fix | Delete
wc_create_attribute(
[54] Fix | Delete
array(
[55] Fix | Delete
'name' => $attribute_name,
[56] Fix | Delete
'slug' => $attribute_name,
[57] Fix | Delete
'type' => 'select',
[58] Fix | Delete
'order_by' => 'menu_order',
[59] Fix | Delete
'has_archives' => false,
[60] Fix | Delete
)
[61] Fix | Delete
);
[62] Fix | Delete
}
[63] Fix | Delete
[64] Fix | Delete
// Register the taxonomy so that the import works.
[65] Fix | Delete
register_taxonomy(
[66] Fix | Delete
$term['domain'],
[67] Fix | Delete
// phpcs:ignore
[68] Fix | Delete
apply_filters( 'woocommerce_taxonomy_objects_' . $term['domain'], array( 'product' ) ),
[69] Fix | Delete
// phpcs:ignore
[70] Fix | Delete
apply_filters(
[71] Fix | Delete
'woocommerce_taxonomy_args_' . $term['domain'],
[72] Fix | Delete
array(
[73] Fix | Delete
'hierarchical' => true,
[74] Fix | Delete
'show_ui' => false,
[75] Fix | Delete
'query_var' => true,
[76] Fix | Delete
'rewrite' => false,
[77] Fix | Delete
)
[78] Fix | Delete
)
[79] Fix | Delete
);
[80] Fix | Delete
}
[81] Fix | Delete
}
[82] Fix | Delete
[83] Fix | Delete
return $posts;
[84] Fix | Delete
}
[85] Fix | Delete
}
[86] Fix | Delete
[87] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function