Edit File by line
/home/zeestwma/richards.../wp-conte.../plugins/elemento.../modules/usage
File: module.php
*
[500] Fix | Delete
* @param array $elements
[501] Fix | Delete
*
[502] Fix | Delete
* @return array
[503] Fix | Delete
*/
[504] Fix | Delete
private function get_elements_usage( $elements ) {
[505] Fix | Delete
$usage = [];
[506] Fix | Delete
[507] Fix | Delete
Plugin::$instance->db->iterate_data( $elements, function ( $element ) use ( &$usage ) {
[508] Fix | Delete
if ( empty( $element['widgetType'] ) ) {
[509] Fix | Delete
$type = $element['elType'];
[510] Fix | Delete
$element_instance = Plugin::$instance->elements_manager->get_element_types( $type );
[511] Fix | Delete
} else {
[512] Fix | Delete
$type = $element['widgetType'];
[513] Fix | Delete
$element_instance = Plugin::$instance->widgets_manager->get_widget_types( $type );
[514] Fix | Delete
}
[515] Fix | Delete
[516] Fix | Delete
if ( ! isset( $usage[ $type ] ) ) {
[517] Fix | Delete
$usage[ $type ] = [
[518] Fix | Delete
'count' => 0,
[519] Fix | Delete
'control_percent' => 0,
[520] Fix | Delete
'controls' => [],
[521] Fix | Delete
];
[522] Fix | Delete
}
[523] Fix | Delete
[524] Fix | Delete
$usage[ $type ]['count']++;
[525] Fix | Delete
[526] Fix | Delete
if ( ! $element_instance ) {
[527] Fix | Delete
return $element;
[528] Fix | Delete
}
[529] Fix | Delete
[530] Fix | Delete
$element_controls = $element_instance->get_controls();
[531] Fix | Delete
[532] Fix | Delete
if ( isset( $element['settings'] ) ) {
[533] Fix | Delete
$settings_controls = $element['settings'];
[534] Fix | Delete
$element_ref = &$usage[ $type ];
[535] Fix | Delete
[536] Fix | Delete
// Add dynamic values.
[537] Fix | Delete
$settings_controls = $this->add_general_controls( $settings_controls, $element_ref );
[538] Fix | Delete
[539] Fix | Delete
$changed_controls_count = $this->add_controls( $settings_controls, $element_controls, $element_ref );
[540] Fix | Delete
[541] Fix | Delete
$percent = ! empty( $element_controls ) ? $changed_controls_count / ( count( $element_controls ) / 100 ) : 0;
[542] Fix | Delete
[543] Fix | Delete
$usage[ $type ] ['control_percent'] = (int) round( $percent );
[544] Fix | Delete
}
[545] Fix | Delete
[546] Fix | Delete
return $element;
[547] Fix | Delete
} );
[548] Fix | Delete
[549] Fix | Delete
return $usage;
[550] Fix | Delete
}
[551] Fix | Delete
[552] Fix | Delete
/**
[553] Fix | Delete
* Save document usage.
[554] Fix | Delete
*
[555] Fix | Delete
* Save requested document usage, and update global.
[556] Fix | Delete
*
[557] Fix | Delete
* @param Document $document
[558] Fix | Delete
*/
[559] Fix | Delete
private function save_document_usage( Document $document ) {
[560] Fix | Delete
if ( ! $document::get_property( 'is_editable' ) && ! $document->is_built_with_elementor() ) {
[561] Fix | Delete
return;
[562] Fix | Delete
}
[563] Fix | Delete
[564] Fix | Delete
// Get data manually to avoid conflict with `\Elementor\Core\Base\Document::get_elements_data... convert_to_elementor`.
[565] Fix | Delete
$data = $document->get_json_meta( '_elementor_data' );
[566] Fix | Delete
[567] Fix | Delete
if ( ! empty( $data ) ) {
[568] Fix | Delete
try {
[569] Fix | Delete
$usage = $this->get_elements_usage( $document->get_elements_raw_data( $data ) );
[570] Fix | Delete
[571] Fix | Delete
$document->update_meta( self::META_KEY, $usage );
[572] Fix | Delete
[573] Fix | Delete
$this->add_to_global( $document->get_name(), $usage );
[574] Fix | Delete
} catch ( \Exception $exception ) {
[575] Fix | Delete
Plugin::$instance->logger->get_logger()->error( $exception->getMessage(), [
[576] Fix | Delete
'document_id' => $document->get_id(),
[577] Fix | Delete
'document_name' => $document->get_name(),
[578] Fix | Delete
] );
[579] Fix | Delete
[580] Fix | Delete
return;
[581] Fix | Delete
}
[582] Fix | Delete
}
[583] Fix | Delete
}
[584] Fix | Delete
[585] Fix | Delete
public static function get_settings_usage() {
[586] Fix | Delete
$usage = [];
[587] Fix | Delete
[588] Fix | Delete
$settings_tab = Plugin::$instance->settings->get_tabs();
[589] Fix | Delete
$settings = array_merge(
[590] Fix | Delete
$settings_tab[ Settings::TAB_GENERAL ]['sections'],
[591] Fix | Delete
$settings_tab[ Settings::TAB_ADVANCED ]['sections']
[592] Fix | Delete
);
[593] Fix | Delete
[594] Fix | Delete
foreach ( $settings as $setting_data ) {
[595] Fix | Delete
foreach ( $setting_data['fields'] as $field_name => $field_data ) {
[596] Fix | Delete
$is_hidden_field = ( empty( $field_data['field_args']['type'] ) || 'hidden' === $field_data['field_args']['type'] );
[597] Fix | Delete
[598] Fix | Delete
if ( $is_hidden_field ) {
[599] Fix | Delete
continue;
[600] Fix | Delete
}
[601] Fix | Delete
[602] Fix | Delete
$setting_value = get_option( 'elementor_' . $field_name );
[603] Fix | Delete
[604] Fix | Delete
if ( empty( $setting_value ) ) {
[605] Fix | Delete
continue;
[606] Fix | Delete
}
[607] Fix | Delete
[608] Fix | Delete
$is_default_value = ( ! empty( $field_data['field_args']['std'] ) && $setting_value === $field_data['field_args']['std'] );
[609] Fix | Delete
[610] Fix | Delete
if ( $is_default_value ) {
[611] Fix | Delete
continue;
[612] Fix | Delete
}
[613] Fix | Delete
[614] Fix | Delete
$usage[ $field_name ] = $setting_value;
[615] Fix | Delete
}
[616] Fix | Delete
}
[617] Fix | Delete
[618] Fix | Delete
$usage = apply_filters( 'elementor/system-info/usage/settings', $usage );
[619] Fix | Delete
[620] Fix | Delete
return $usage;
[621] Fix | Delete
}
[622] Fix | Delete
[623] Fix | Delete
/**
[624] Fix | Delete
* Add system info report.
[625] Fix | Delete
*/
[626] Fix | Delete
public function add_system_info_report() {
[627] Fix | Delete
System_Info::add_report( 'usage', [
[628] Fix | Delete
'file_name' => __DIR__ . '/usage-reporter.php',
[629] Fix | Delete
'class_name' => __NAMESPACE__ . '\Usage_Reporter',
[630] Fix | Delete
] );
[631] Fix | Delete
[632] Fix | Delete
System_Info::add_report( 'settings', [
[633] Fix | Delete
'file_name' => __DIR__ . '/settings-reporter.php',
[634] Fix | Delete
'class_name' => __NAMESPACE__ . '\Settings_Reporter',
[635] Fix | Delete
] );
[636] Fix | Delete
}
[637] Fix | Delete
[638] Fix | Delete
/**
[639] Fix | Delete
* Usage module constructor.
[640] Fix | Delete
*
[641] Fix | Delete
* Initializing Elementor usage module.
[642] Fix | Delete
*
[643] Fix | Delete
* @access public
[644] Fix | Delete
*/
[645] Fix | Delete
public function __construct() {
[646] Fix | Delete
if ( ! Tracker::is_allow_track() ) {
[647] Fix | Delete
return;
[648] Fix | Delete
}
[649] Fix | Delete
[650] Fix | Delete
add_action( 'transition_post_status', [ $this, 'on_status_change' ], 10, 3 );
[651] Fix | Delete
add_action( 'before_delete_post', [ $this, 'on_before_delete_post' ] );
[652] Fix | Delete
[653] Fix | Delete
add_action( 'elementor/document/before_save', [ $this, 'before_document_save' ], 10, 2 );
[654] Fix | Delete
add_action( 'elementor/document/after_save', [ $this, 'after_document_save' ] );
[655] Fix | Delete
[656] Fix | Delete
add_filter( 'elementor/tracker/send_tracking_data_params', [ $this, 'add_tracking_data' ] );
[657] Fix | Delete
[658] Fix | Delete
add_action( 'admin_init', [ $this, 'add_system_info_report' ], 50 );
[659] Fix | Delete
}
[660] Fix | Delete
}
[661] Fix | Delete
[662] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function