芝麻web文件管理V1.00
编辑当前文件:/home/ezdajrnh/test.ezed.pk/wp-content/plugins/wpforms-lite/src/Admin/Education/Builder/PDF.php
addon_data = $this->get_addon_data(); if ( ! $this->should_show_popup() ) { return; } $this->hooks(); } /** * Should show popup. * * @since 1.9.7.3 * * @return bool */ private function should_show_popup(): bool { if ( ! wpforms_is_admin_page( 'builder' ) && ! wpforms_is_admin_ajax() ) { return false; } if ( ! current_user_can( wpforms_get_capability_manage_options() ) ) { return false; } $challenge = wpforms()->obj( 'challenge' ); if ( ! $challenge || $challenge->challenge_active() ) { return false; } return $this->is_popup_visible(); } /** * Is popup visible. * * @since 1.9.7.3 * * @return bool */ private function is_popup_visible(): bool { $action = $this->addon_data['action'] ?? 'install'; if ( empty( $this->addon_data ) || ( $action === 'install' && empty( $this->addon_data['url'] ) ) // The install action requires a valid URL. ) { return false; } $meta = get_user_meta( get_current_user_id(), 'wpforms_dismissed', true ); return empty( $meta['edu-builder-pdf'] ); } /** * Hooks. * * @since 1.9.7.3 */ private function hooks(): void { add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_scripts' ] ); add_filter( 'wpforms_builder_output_before_toolbar', [ $this, 'popup_html' ] ); } /** * Enqueue scripts. * * @since 1.9.7.3 */ public function enqueue_scripts(): void { $min = wpforms_get_min_suffix(); wp_enqueue_script( 'wpforms-pdf-popup', WPFORMS_PLUGIN_URL . "assets/js/admin/education/pdf$min.js", [], WPFORMS_VERSION, true ); } /** * Popup HTML. * * @since 1.9.7.3 * * @param string|mixed $html HTML. * * @return string * @noinspection HtmlUnknownTarget */ public function popup_html( $html ): string { $html = (string) $html; $popup = sprintf( '
%2$s
%3$s
%4$s
%5$s
', esc_url( WPFORMS_PLUGIN_URL . 'assets/images/pdf-education/pdf.svg' ), __( 'NEW FEATURE', 'wpforms-lite' ), __( 'PDF Addon', 'wpforms-lite' ), __( 'Easily turn form entry data into beautifully designed PDFs and attach them to notifications.' ), $this->get_button_html() ); return $popup . $html; } /** * Get button HTML. * * @since 1.9.7.3 * * @return string * @noinspection HtmlUnknownAttribute */ private function get_button_html(): string { $addon = $this->addon_data; $action = $addon['action'] ?? 'switch'; [ $button_label, $button_utm, $button_class, $button_attr ] = $this->get_button_data( $action, $addon ); return sprintf( '
%3$s
', esc_attr( $button_class ), esc_attr( $action ), esc_html( $button_label ), $button_attr, esc_attr( $addon['license_level'] ?? 'pro' ), esc_attr( $button_utm ) ); } /** * Get addon data. * * @since 1.9.7.3 * * @return array */ private function get_addon_data(): array { /** * Filter the slug for the PDF educational popup. * * @since 1.9.7.3 * * @param string $slug The slug for the PDF educational popup. */ $slug = apply_filters( 'wpforms_admin_education_builder_pdf_get_addon_data_slug', $this->slug ); $addons = Helpers::get_edu_addons(); return $addons[ $slug ] ?? []; } /** * Get button data. * * @since 1.9.7.3 * * @param string $action Action type (switch, upgrade, etc.). * @param array $addon Addon data. * * @return array */ protected function get_button_data( string $action, array $addon ): array { $button_label = $action === 'upgrade' ? esc_html__( 'Upgrade to Pro', 'wpforms-lite' ) : esc_html__( 'Try it Out', 'wpforms-lite' ); $button_utm = 'PDF Addon Pop-up'; $button_class = 'education-action-button'; $button_attr = ''; if ( $action === 'switch' ) { $button_class = 'education-modal education-switch-button'; $button_attr = 'data-target="wpforms-pdf"'; } elseif ( $action !== 'upgrade' ) { $button_class = 'education-modal'; $button_attr = sprintf( 'data-nonce="%1$s" data-path="%2$s" data-url="%3$s" data-message="" data-name="%4$s"', esc_attr( wp_create_nonce( 'wpforms-admin' ) ), $addon['path'] ?? '', $addon['url'] ?? '', esc_html__( 'WPForms PDF Addon', 'wpforms-lite' ) ); } return [ $button_label, $button_utm, $button_class, $button_attr ]; } }