*/ function alpha_accounting_default_options() { $default_theme_options = array( 'hide_get_started_notice' => false, 'theme_installed_date_time' => time(), ); return apply_filters( 'alpha_accounting_default_options', $default_theme_options ); } endif; if ( ! function_exists( 'alpha_accounting_default_user_meta' ) ) : /** * Get the User Default Meta. * * @since 1.0.0 * * @return array Default User Meta * * @author Abu Turab */ function alpha_accounting_default_user_meta() { $default_user_meta = array( 'remove_review_notice_permanently' => false, 'remove_review_notice_temporary_date_time' => time(), ); return apply_filters( 'alpha_accounting_default_user_meta', $default_user_meta ); } endif; if ( ! function_exists( 'alpha_accounting_get_user_meta' ) ) : /** * Get the User Meta. * * @since 1.0.0 * * @param int $user_id User ID. * @param string $key optional meta key. * * @return mixed All Meta Value related to the theme only. * * @author Abu Turab */ function alpha_accounting_get_user_meta( $user_id, $key = '' ) { $options = get_user_meta( $user_id, ALPHA_ACCOUNTING_OPTION_NAME, true ); $default_options = alpha_accounting_default_user_meta(); if ( ! empty( $key ) ) { if ( isset( $options[ $key ] ) ) { return $options[ $key ]; } return isset( $default_options[ $key ] ) ? $default_options[ $key ] : false; } else { if ( ! is_array( $options ) ) { $options = array(); } return array_merge( $default_options, $options ); } } endif; if ( ! function_exists( 'alpha_accounting_update_user_meta' ) ) : /** * Update the User Meta. * * @since 1.0.0 * * @param int $user_id User ID. * @param string|array $key_or_data Meta key or array of meta key-value pairs. * @param string|mixed $val Value of meta key if $key_or_data is string. * * @return bool True on successful update, false on failure. * * @author Abu Turab */ function alpha_accounting_update_user_meta( $user_id, $key_or_data, $val = '' ) { $options = alpha_accounting_get_user_meta( $user_id ); if ( is_string( $key_or_data ) ) { $options[ $key_or_data ] = $val; } elseif ( is_array( $key_or_data ) ) { $options = array_merge( $options, $key_or_data ); } return update_user_meta( $user_id, ALPHA_ACCOUNTING_OPTION_NAME, $options ); } endif; if ( ! function_exists( 'alpha_accounting_file_system' ) ) { /** * * WordPress file system wrapper * * @since 1.0.0 * * @return string|WP_Error directory path or WP_Error object if no permission * * @author Abu Turab */ function alpha_accounting_file_system() { global $wp_filesystem; if ( ! $wp_filesystem ) { require_once ABSPATH . 'wp-admin' . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'file.php'; } WP_Filesystem(); return $wp_filesystem; } } if ( ! function_exists( 'alpha_accounting_parse_changelog' ) ) { /** * Parse changelog * * @since 1.0.0 * @return string * * @author Abu Turab */ function alpha_accounting_parse_changelog() { $wp_filesystem = alpha_accounting_file_system(); $changelog_file = apply_filters( 'alpha_accounting_changelog_file', ALPHA_ACCOUNTING_PATH . 'readme.txt' ); /*Check if the changelog file exists and is readable.*/ if ( ! $changelog_file || ! is_readable( $changelog_file ) ) { return ''; } $content = $wp_filesystem->get_contents( $changelog_file ); if ( ! $content ) { return ''; } $matches = null; $regexp = '~==\s*Changelog\s*==(.*)($)~Uis'; $changelog = ''; if ( preg_match( $regexp, $content, $matches ) ) { $changes = explode( '\r\n', trim( $matches[1] ) ); foreach ( $changes as $index => $line ) { $changelog .= wp_kses_post( preg_replace( '~(=\s*Version\s*(\d+(?:\.\d+)+)\s*=|$)~Uis', '', $line ) ); } } return wp_kses_post( $changelog ); } } if ( ! function_exists( 'alpha_accounting_get_theme_faq' ) ) : /** * Get FAQ for this theme. * It is used on the theme page. * * @since 1.0.0 * @return array All FAQ. * * @author Abu Turab */ function alpha_accounting_get_theme_faq() { $faq = array( array( 'q' => esc_html__( 'How do I install and activate this theme?', 'alpha-accounting' ), 'a' => esc_html__( 'You can install the theme by going to Appearance > Themes > Add New, then upload the theme ZIP file and click Install. Once installed, click Activate to start using the theme.', 'alpha-accounting' ), ), array( 'q' => esc_html__( 'Can I change the site logo and title?', 'alpha-accounting' ), 'a' => esc_html__( 'Yes, you can update the logo, site title, and tagline by going to Appearance > Editor > Site Settings > General. From there, you can upload a custom logo and edit your site information.', 'alpha-accounting' ), ), array( 'q' => esc_html__( 'Does this theme support WooCommerce?', 'alpha-accounting' ), 'a' => esc_html__( 'Yes, the theme is fully compatible with WooCommerce. Once WooCommerce is installed and activated, you can add products, create a shop page, and customize the store layout.', 'alpha-accounting' ), ), array( 'q' => esc_html__( 'How can I adjust the colors and fonts?', 'alpha-accounting' ), 'a' => esc_html__( 'You can customize colors and fonts by going to Appearance > Editor > Styles. Use the typography and color settings to match your brand style.', 'alpha-accounting' ), ), array( 'q' => esc_html__( 'Is this theme mobile responsive?', 'alpha-accounting' ), 'a' => esc_html__( 'Yes, the theme is fully responsive and optimized for mobile, tablet, and desktop devices.', 'alpha-accounting' ), ), ); return apply_filters( 'alpha_accounting_faq', $faq ); } endif; // Add admin notice function alpha_accounting_admin_notice() { global $pagenow; $alpha_accounting_theme_args = wp_get_theme(); $alpha_accounting_meta = get_option( 'alpha_accounting_admin_notice' ); $name = $alpha_accounting_theme_args->__get( 'Name' ); $alpha_accounting_current_screen = get_current_screen(); if( !$alpha_accounting_meta ){ if( is_network_admin() ){ return; } if( ! current_user_can( 'manage_options' ) ){ return; } if( $alpha_accounting_current_screen->base !== 'appearance_page_alpha-accounting' && $alpha_accounting_current_screen->base !== 'toplevel_page_alphaaccounting-demoimport' ) { ?>