diff --git a/apigen.neon b/apigen.neon deleted file mode 100644 index ea3f1cac40e..00000000000 --- a/apigen.neon +++ /dev/null @@ -1,22 +0,0 @@ -destination: wc-apidocs -templateConfig: apigen/theme-woocommerce/config.neon -extensions: [php] -source: - - woocommerce.php - - includes -exclude: - - includes/libraries/ - - includes/api/legacy/ - - api/legacy/ - - libraries/ -charset: [UTF-8] -main: WC -title: WooCommerce Code Reference -baseUrl: https://docs.woocommerce.com/wc-apidocs/ -templateTheme: default -php: false -sourceCode: true -tree: true -deprecated: true -todo: true -download: false diff --git a/apigen/hook-docs.php b/apigen/hook-docs.php deleted file mode 100644 index 74087e50198..00000000000 --- a/apigen/hook-docs.php +++ /dev/null @@ -1,226 +0,0 @@ -' . $hook . ''; - } - - public static function process_hooks() { - self::$files_to_scan = array(); - - self::$files_to_scan['Template Files'] = self::get_files( '*.php', GLOB_MARK, '../templates/' ); - self::$files_to_scan['Template Functions'] = array( '../includes/wc-template-functions.php', '../includes/wc-template-hooks.php' ); - self::$files_to_scan['Shortcodes'] = self::get_files( '*.php', GLOB_MARK, '../includes/shortcodes/' ); - self::$files_to_scan['Widgets'] = self::get_files( '*.php', GLOB_MARK, '../includes/widgets/' ); - self::$files_to_scan['Data Stores'] = self::get_files( '*.php', GLOB_MARK, '../includes/data-stores' ); - self::$files_to_scan['Core Classes'] = array_merge( - self::get_files( '*.php', GLOB_MARK, '../includes/' ), - self::get_files( '*.php', GLOB_MARK, '../includes/abstracts/' ), - self::get_files( '*.php', GLOB_MARK, '../includes/customizer/' ), - self::get_files( '*.php', GLOB_MARK, '../includes/emails/' ), - self::get_files( '*.php', GLOB_MARK, '../includes/export/' ), - self::get_files( '*.php', GLOB_MARK, '../includes/gateways/' ), - self::get_files( '*.php', GLOB_MARK, '../includes/import/' ), - self::get_files( '*.php', GLOB_MARK, '../includes/shipping/' ) - ); - - self::$files_to_scan = array_filter( self::$files_to_scan ); - - $scanned = array(); - - ob_start(); - - $index = array(); - - foreach ( self::$files_to_scan as $heading => $files ) { - $index[] = '' . $heading . ''; - } - - echo '
'; - echo '

Action and Filter Hook Reference

'; - echo '
-

This is simply a list of action and filter hooks found within WooCommerce files. View the source to see supported params and usage.

-

' . implode( ', ', $index ) . '

-
'; - - foreach ( self::$files_to_scan as $heading => $files ) { - self::$custom_hooks_found = array(); - - foreach ( $files as $f ) { - self::$current_file = basename( $f ); - $tokens = token_get_all( file_get_contents( $f ) ); - $token_type = false; - $current_class = ''; - $current_function = ''; - - if ( in_array( self::$current_file, $scanned ) ) { - continue; - } - - $scanned[] = self::$current_file; - - foreach ( $tokens as $index => $token ) { - if ( is_array( $token ) ) { - $trimmed_token_1 = trim( $token[1] ); - if ( T_CLASS == $token[0] ) { - $token_type = 'class'; - } elseif ( T_FUNCTION == $token[0] ) { - $token_type = 'function'; - } elseif ( 'do_action' === $token[1] ) { - $token_type = 'action'; - } elseif ( 'apply_filters' === $token[1] ) { - $token_type = 'filter'; - } elseif ( $token_type && ! empty( $trimmed_token_1 ) ) { - switch ( $token_type ) { - case 'class' : - $current_class = $token[1]; - break; - case 'function' : - $current_function = $token[1]; - break; - case 'filter' : - case 'action' : - $hook = trim( $token[1], "'" ); - $hook = str_replace( '_FUNCTION_', strtoupper( $current_function ), $hook ); - $hook = str_replace( '_CLASS_', strtoupper( $current_class ), $hook ); - $hook = str_replace( '$this', strtoupper( $current_class ), $hook ); - $hook = str_replace( array( '.', '{', '}', '"', "'", ' ', ')', '(' ), '', $hook ); - $loop = 0; - - // Keep adding to hook until we find a comma or colon - while ( 1 ) { - $loop ++; - $prev_hook = is_string( $tokens[ $index + $loop - 1 ] ) ? $tokens[ $index + $loop - 1 ] : $tokens[ $index + $loop - 1 ][1]; - $next_hook = is_string( $tokens[ $index + $loop ] ) ? $tokens[ $index + $loop ] : $tokens[ $index + $loop ][1]; - - if ( in_array( $next_hook, array( '.', '{', '}', '"', "'", ' ', ')', '(' ) ) ) { - continue; - } - - if ( in_array( $next_hook, array( ',', ';' ) ) ) { - break; - } - - $hook_first = substr( $next_hook, 0, 1 ); - $hook_last = substr( $next_hook, -1, 1 ); - - if ( '{' === $hook_first || '}' === $hook_last || '$' === $hook_first || ')' === $hook_last || '>' === substr( $prev_hook, -1, 1 ) ) { - $next_hook = strtoupper( $next_hook ); - } - - $next_hook = str_replace( array( '.', '{', '}', '"', "'", ' ', ')', '(' ), '', $next_hook ); - - $hook .= $next_hook; - } - - if ( isset( self::$custom_hooks_found[ $hook ] ) ) { - self::$custom_hooks_found[ $hook ]['file'][] = self::$current_file; - } else { - self::$custom_hooks_found[ $hook ] = array( - 'line' => $token[2], - 'class' => $current_class, - 'function' => $current_function, - 'file' => array( self::$current_file ), - 'type' => $token_type, - ); - } - break; - } - $token_type = false; - } - } - } - } - - foreach ( self::$custom_hooks_found as $hook => $details ) { - if ( ! strstr( $hook, 'woocommerce' ) && ! strstr( $hook, 'product' ) && ! strstr( $hook, 'wc_' ) ) { - //unset( self::$custom_hooks_found[ $hook ] ); - } - } - - ksort( self::$custom_hooks_found ); - - if ( ! empty( self::$custom_hooks_found ) ) { - echo '

' . $heading . '

'; - - echo ''; - - foreach ( self::$custom_hooks_found as $hook => $details ) { - echo ' - - - - ' . "\n"; - } - - echo '
HookTypeFile(s)
' . self::get_hook_link( $hook, $details ) . '' . $details['type'] . '' . implode( ', ', array_unique( $details['file'] ) ) . '
'; - } - } - - echo '