HEX
Server: nginx/1.18.0
System: Linux vps-9dcdb12e 5.15.0-176-generic #186-Ubuntu SMP Fri Mar 13 11:01:42 UTC 2026 x86_64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.24
Disabled: exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
Upload Files
File: /var/www/lascalaswidnik.pl/wp-content/plugins/integromat-connector/settings/class-controller.php
<?php

namespace Integromat;

defined( 'ABSPATH' ) || die( 'No direct access allowed' );

class Controller {
	public function init() {
		/**
		 * Custom Fields initialization
		 */
		add_action(
			'admin_init',
			function () {
				global $pagenow;
				// phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Admin page check, no form processing
				if ( 'options.php' === $pagenow || ( 'admin.php' === $pagenow && isset( $_GET['page'] ) && sanitize_text_field( wp_unslash( $_GET['page'] ) ) === IWC_MENUITEM_IDENTIFIER ) ) {
					// Posts.
					require_once __DIR__ . '/object-types/class-post-meta.php';
					$posts_meta = new Posts_Meta();
					$posts_meta->init();

					// Comments.
					require_once __DIR__ . '/object-types/class-comments-meta.php';
					$comments_meta = new Comments_Meta();
					$comments_meta->init();

					// Users.
					require_once __DIR__ . '/object-types/class-user-meta.php';
					$users_meta = new Users_Meta();
					$users_meta->init();

					// Terms.
					require_once __DIR__ . '/object-types/class-term-meta.php';
					$terms_meta = new Terms_Meta();
					$terms_meta->init();
				}

				// phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Admin page check, no form processing
				if ( 'options.php' === $pagenow || ( 'admin.php' === $pagenow && isset( $_GET['page'] ) && sanitize_text_field( wp_unslash( $_GET['page'] ) ) === 'integromat_custom_toxonomies' ) ) {
					// Taxonomies.
					require_once __DIR__ . '/object-types/custom-taxonomy.php';
					add_taxonomies();
				}
				require_once __DIR__ . '/object-types/general.php';
				add_general_menu();
				
				// Security settings
				require_once __DIR__ . '/object-types/security.php';
				add_security_menu();
			}
		);

		/**
		 * Connector initialization
		 */
		add_action(
			'init',
			function () {
				Api_Token::initiate();
			}
		);
	}
}

add_filter( "pre_update_option_integromat_api_options_taxonomy", function ($new_value, $old_value) {

	$updated_taxonomies = empty( $new_value ) ? array() : $new_value;

	$taxonomies = get_taxonomies( array( '_builtin' => false, 'public' => true ) );
	foreach ( $taxonomies as $key ) {
		if ( ! in_array( $key, array_keys( $updated_taxonomies ) ) ) {
			$updated_taxonomies[ $key ] = "0";
		}
	}

	return $updated_taxonomies;

}, 10, 2 );

add_filter(
	'register_taxonomy_args',
	function ($args, $taxonomy_name) {

		if ( ( isset( $args['_builtin'] ) && $args['_builtin'] ) || ( isset( $args['public'] ) && ! $args['public'] ) ) {
			return $args;
		}

		$optn = get_option( 'integromat_api_options_taxonomy' );

		if ( false === $optn ) {
			// option doesn't exist in db, run with everything default.
			return $args;
		}

		$saved_taxonomies = empty( $optn ) ? array() : array_keys( $optn );

		if ( in_array( $taxonomy_name, $saved_taxonomies ) ) {
			$args['show_in_rest'] = (boolean) $optn[ $taxonomy_name ];
		}
		return $args;
	},
	10,
	2
);