{"id":325424,"date":"2026-06-17T05:45:18","date_gmt":"2026-06-17T05:45:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/careerschoolapp\/"},"modified":"2026-06-17T05:44:40","modified_gmt":"2026-06-17T05:44:40","slug":"careerschoolapp","status":"publish","type":"plugin","link":"https:\/\/lo.wordpress.org\/plugins\/careerschoolapp\/","author":23515600,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.0","stable_tag":"1.2.0","tested":"7.0","requires":"5.9","requires_php":"7.4","requires_plugins":null,"header_name":"CareerSchoolApp","header_author":"My Career Shop, Inc.","header_description":"Embed CareerSchoolApp application forms on your school's WordPress site using a Gutenberg block or [csapp_application_form] shortcode. Requires a CareerSchoolApp School Direct subscription and an embed key.","assets_banners_color":"708abf","last_updated":"2026-06-17 05:44:40","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/careerschoolapp.com\/wordpress-plugin","header_author_uri":"https:\/\/careerschoolapp.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":31,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.0":{"tag":"1.2.0","author":"careerschoolapp","date":"2026-06-17 05:44:40"}},"upgrade_notice":{"1.2.0":"<p>Internal names were re-prefixed for WordPress.org compliance. If you use the classic shortcode, rename <code>[csa_application_form]<\/code> to <code>[csapp_application_form]<\/code>. Block-based embeds need no changes.<\/p>","1.1.0":"<p>The embed loader is now enqueued properly via WordPress (no inline script tags). Adds optional default Program\/Campus\/School ID settings so you can drop the block or shortcode with no attributes. No action required after updating.<\/p>","1.0.0":"<p>Initial release. No upgrade steps required.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3575260,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3575260,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3575260,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3575260,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"<strong>Settings page<\/strong> \u2014 Configure your Embed Key, API Base URL, and default primary colour under Settings \u2192 CareerSchoolApp.","2":"<strong>Gutenberg block<\/strong> \u2014 The \"CareerSchoolApp Application Form\" block in the block inserter.","3":"<strong>Block sidebar<\/strong> \u2014 Set the Program ID and colour override from the Inspector Controls panel.","4":"<strong>Front-end embed<\/strong> \u2014 The embedded application form as it appears to applicants on your school's website."}},"plugin_section":[],"plugin_tags":[7271,230,35891,601,11707],"plugin_category":[42,56],"plugin_contributors":[267444],"plugin_business_model":[],"class_list":["post-325424","plugin","type-plugin","status-publish","hentry","plugin_tags-application","plugin_tags-embed","plugin_tags-enrollment","plugin_tags-forms","plugin_tags-school","plugin_category-contact-forms","plugin_category-social-and-sharing","plugin_contributors-careerschoolapp","plugin_committers-careerschoolapp"],"banners":{"banner":"https:\/\/ps.w.org\/careerschoolapp\/assets\/banner-772x250.png?rev=3575260","banner_2x":"https:\/\/ps.w.org\/careerschoolapp\/assets\/banner-1544x500.png?rev=3575260","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/careerschoolapp\/assets\/icon-128x128.png?rev=3575260","icon_2x":"https:\/\/ps.w.org\/careerschoolapp\/assets\/icon-256x256.png?rev=3575260","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>CareerSchoolApp<\/strong> is a web-based platform that allows trade schools and vocational colleges to receive and manage student applications online. This plugin lets your school embed a fully functioning application form \u2014 including multi-step wizards and Stripe-powered fee collection \u2014 directly on any page of your WordPress site.<\/p>\n\n<p><strong>Third-party service disclosure<\/strong><\/p>\n\n<p>This plugin is a service connector for the <strong>CareerSchoolApp<\/strong> third-party hosted service (operated by My Career Shop, Inc.). It does not contain the application-form logic itself. When a page containing an embed is loaded in a visitor's browser, the plugin enqueues a loader script \u2014 <code>embed\/v1\/form.js<\/code> \u2014 from <strong>careerschoolapp.com<\/strong> (or the API Base URL you configure). That remote script renders the form and communicates directly with CareerSchoolApp servers. Using this plugin therefore requires an active CareerSchoolApp account and sends visitor browser requests to that external service.<\/p>\n\n<ul>\n<li>Service &amp; terms: <a href=\"https:\/\/careerschoolapp.com\">https:\/\/careerschoolapp.com<\/a> \u2014 <a href=\"https:\/\/careerschoolapp.com\/terms\">Terms of Service<\/a><\/li>\n<li>Privacy policy: <a href=\"https:\/\/careerschoolapp.com\/privacy\">https:\/\/careerschoolapp.com\/privacy<\/a><\/li>\n<\/ul>\n\n<p><strong>Key features:<\/strong><\/p>\n\n<ul>\n<li><strong>Gutenberg block<\/strong> \u2014 drag and drop the \"CareerSchoolApp Application Form\" block anywhere in the block editor. Configure the scope (Program, Campus, or School) and brand colour from the block's sidebar panel.<\/li>\n<li><strong>Classic shortcode<\/strong> \u2014 works in the Classic Editor, page builders, and widgets: <code>[csapp_application_form program_id=\"YOUR-UUID\"]<\/code><\/li>\n<li><strong>Three embed scopes<\/strong> \u2014 embed a single program, a campus-scoped program picker, or a school-wide program picker.<\/li>\n<li><strong>No build step required<\/strong> \u2014 the plugin uses server-side rendering and plain JavaScript with WordPress global APIs. No npm, no webpack, no React build.<\/li>\n<li><strong>Per-embed overrides<\/strong> \u2014 set a default embed key and brand colour site-wide, then override either on a per-block or per-shortcode basis.<\/li>\n<li><strong>Multiple forms per page<\/strong> \u2014 each embed is scoped to a unique DOM container ID so several programs can appear on the same page simultaneously.<\/li>\n<li><strong>Multisite compatible<\/strong> \u2014 settings are stored per sub-site and cleaned up cleanly on uninstall.<\/li>\n<\/ul>\n\n<p><strong>Requirements:<\/strong><\/p>\n\n<ul>\n<li>An active CareerSchoolApp account with a School Direct subscription.<\/li>\n<li>An Embed Key generated from the <strong>Website Embed<\/strong> page of your CareerSchoolApp School Dashboard.<\/li>\n<li>The Program UUID(s) for the program(s) you want to embed. These are visible on the same Website Embed page.<\/li>\n<\/ul>\n\n<p><strong>Privacy:<\/strong><\/p>\n\n<p>This plugin does not store any applicant data locally. All form data is transmitted securely directly to CareerSchoolApp servers via the embed script. Refer to the <a href=\"https:\/\/careerschoolapp.com\/privacy\">CareerSchoolApp Privacy Policy<\/a> for details on how applicant data is handled.<\/p>\n\n<h3>Privacy Policy<\/h3>\n\n<p>This plugin transmits the visitor's browser session to <code>https:\/\/careerschoolapp.com<\/code> when a page containing an embedded form is loaded. No applicant data is stored by this plugin on your WordPress installation. For full details, see the <a href=\"https:\/\/careerschoolapp.com\/privacy\">CareerSchoolApp Privacy Policy<\/a>.<\/p>\n\n<!--section=installation-->\n<p><strong>Automatic installation (recommended)<\/strong><\/p>\n\n<ol>\n<li>Log in to your WordPress admin dashboard.<\/li>\n<li>Go to <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Search for <strong>CareerSchoolApp<\/strong>.<\/li>\n<li>Click <strong>Install Now<\/strong> and then <strong>Activate<\/strong>.<\/li>\n<\/ol>\n\n<p><strong>Manual installation<\/strong><\/p>\n\n<ol>\n<li>Download the plugin zip file from the WordPress.org plugin repository.<\/li>\n<li>In your WordPress admin, go to <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Upload the zip file and click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<\/ol>\n\n<p><strong>After activation<\/strong><\/p>\n\n<ol>\n<li>Go to <strong>Settings \u2192 CareerSchoolApp<\/strong>.<\/li>\n<li>Paste your <strong>Embed Key<\/strong> (found on the Website Embed page of your CareerSchoolApp School Dashboard).<\/li>\n<li>Optionally set a default <strong>Primary Color<\/strong> to match your school's brand.<\/li>\n<li>Click <strong>Save Settings<\/strong>.<\/li>\n<li>Add a form to any page using the Gutenberg block or the <code>[csapp_application_form]<\/code> shortcode.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20find%20my%20embed%20key%3F\"><h3>Where do I find my Embed Key?<\/h3><\/dt>\n<dd><p>Log into your CareerSchoolApp School Dashboard and navigate to <strong>Website Embed<\/strong> (under your school's settings). Generate or copy your embed key from that page. Treat it like a password \u2014 do not paste it into public source code repositories.<\/p><\/dd>\n<dt id=\"where%20do%20i%20find%20my%20program%20id%3F\"><h3>Where do I find my Program ID?<\/h3><\/dt>\n<dd><p>On the same <strong>Website Embed<\/strong> page, select a program from the drop-down. The Program UUID appears in the generated HTML snippet. It looks like: <code>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx<\/code>.<\/p><\/dd>\n<dt id=\"how%20do%20i%20embed%20a%20campus-%20or%20school-wide%20program%20picker%20instead%20of%20a%20single%20program%3F\"><h3>How do I embed a campus- or school-wide program picker instead of a single program?<\/h3><\/dt>\n<dd><p>Switch the <strong>Website Embed<\/strong> page selector from \"Single program\" to \"Campus\" or \"School\" and copy the <code>campus_id<\/code> or <code>school_id<\/code> value. Then pass that UUID to the block field or shortcode attribute \u2014 for example, <code>[csapp_application_form campus_id=\"YOUR-CAMPUS-UUID\"]<\/code> renders a picker limited to programs at that campus, and <code>school_id=\"YOUR-SCHOOL-UUID\"<\/code> shows every published program across the school. Only set one scope attribute per embed. You can also set a default scope under <strong>Settings \u2192 CareerSchoolApp<\/strong> so the bare <code>[csapp_application_form]<\/code> shortcode and the block work with no attributes.<\/p><\/dd>\n<dt id=\"do%20i%20have%20to%20set%20a%20program%2C%20campus%2C%20or%20school%20id%3F\"><h3>Do I have to set a Program, Campus, or School ID?<\/h3><\/dt>\n<dd><p>No. The scope is optional. As long as your Embed Key is configured, a bare <code>[csapp_application_form]<\/code> shortcode (or a block with no scope) runs in school-wide mode and lets the applicant pick their program on the widget's first screen. Set a scope only when you want to restrict an embed to one program, campus, or school.<\/p><\/dd>\n<dt id=\"can%20i%20embed%20more%20than%20one%20program%20on%20the%20same%20page%3F\"><h3>Can I embed more than one program on the same page?<\/h3><\/dt>\n<dd><p>Yes. Each block or shortcode renders into its own uniquely-scoped container element, so multiple programs can coexist on the same page without conflicts.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20work%20with%20the%20classic%20editor%3F\"><h3>Does this plugin work with the Classic Editor?<\/h3><\/dt>\n<dd><p>Yes. Use the shortcode <code>[csapp_application_form program_id=\"YOUR-UUID\"]<\/code> in any post, page, or text widget.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20work%20with%20page%20builders%20like%20elementor%20or%20divi%3F\"><h3>Does this plugin work with page builders like Elementor or Divi?<\/h3><\/dt>\n<dd><p>Yes. Use the shortcode embed widget in your page builder of choice, or (in Elementor) use the HTML widget with the shortcode. The embed script is loaded asynchronously and will not block page rendering.<\/p><\/dd>\n<dt id=\"can%20i%20override%20the%20brand%20colour%20for%20a%20specific%20program%3F\"><h3>Can I override the brand colour for a specific program?<\/h3><\/dt>\n<dd><p>Yes. In the Gutenberg block, open the <strong>Appearance<\/strong> panel in the sidebar and pick a colour. With the shortcode, add a <code>primary_color<\/code> attribute: <code>[csapp_application_form program_id=\"YOUR-UUID\" primary_color=\"#e05d26\"]<\/code>.<\/p><\/dd>\n<dt id=\"can%20i%20use%20a%20different%20embed%20key%20for%20each%20form%3F\"><h3>Can I use a different embed key for each form?<\/h3><\/dt>\n<dd><p>Yes. Pass an <code>embed_key<\/code> attribute in the shortcode, or fill in the <strong>Embed Key Override<\/strong> field in the block's sidebar panel. This is useful for multi-campus schools with separate embed keys per campus.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20compatible%20with%20wordpress%20multisite%3F\"><h3>Is the plugin compatible with WordPress Multisite?<\/h3><\/dt>\n<dd><p>Yes. Settings are stored per sub-site. On plugin deletion, settings are removed from every sub-site automatically.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20cache%20anything%3F\"><h3>Does the plugin cache anything?<\/h3><\/dt>\n<dd><p>No. The embed script loads asynchronously from CareerSchoolApp servers and all caching decisions rest with your CDN or caching plugin. The plugin itself stores only admin settings in <code>wp_options<\/code>.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20the%20embed%20key%20is%20not%20configured%3F\"><h3>What happens if the Embed Key is not configured?<\/h3><\/dt>\n<dd><p>The embed block and shortcode display a notice explaining that an embed key is required. This notice is visible only to site visitors \u2014 not hidden behind authentication \u2014 so it is important to configure the key before publishing pages that contain the embed.<\/p><\/dd>\n<dt id=\"what%20data%20does%20the%20plugin%20transmit%20externally%3F\"><h3>What data does the plugin transmit externally?<\/h3><\/dt>\n<dd><p>When a page containing the embed is loaded, the visitor's browser loads <code>embed\/v1\/form.js<\/code> from <code>https:\/\/careerschoolapp.com<\/code> (or your configured API Base URL). No data is transmitted from the WordPress server itself. All applicant data is sent directly from the visitor's browser to CareerSchoolApp servers over HTTPS.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20translation-ready%3F\"><h3>Is the plugin translation-ready?<\/h3><\/dt>\n<dd><p>Yes. All user-facing strings are wrapped in WordPress i18n functions and the text domain is <code>careerschoolapp<\/code>. A <code>.pot<\/code> file will be provided in a future release to facilitate community translations.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Renamed all internal function, class, constant, and option prefixes to the unique <code>csapp_<\/code>\/<code>CSAPP_<\/code> prefix to comply with the WordPress.org plugin guidelines and avoid conflicts with other plugins. The classic shortcode is now <code>[csapp_application_form]<\/code> (previously <code>[csa_application_form]<\/code>) \u2014 update any existing shortcodes accordingly. The Gutenberg block and saved settings are unchanged.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Enqueue the embed loader via wp_enqueue_script\/wp_add_inline_script instead of printing inline tags; remove kses script allow-listing; add default Program\/Campus\/School ID settings; hardened escaping; readme compliance.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<li>Gutenberg block <code>careerschoolapp\/application-form<\/code> with server-side rendering \u2014 no build step required.<\/li>\n<li>Classic shortcode <code>[csapp_application_form]<\/code> with <code>program_id<\/code>, <code>campus_id<\/code>, <code>school_id<\/code>, <code>embed_key<\/code>, and <code>primary_color<\/code> attributes.<\/li>\n<li>Settings page under <strong>Settings \u2192 CareerSchoolApp<\/strong> with embed key, API base URL, and default colour.<\/li>\n<li>Per-block and per-shortcode embed key and colour overrides.<\/li>\n<li>Multiple embeds supported on a single page via unique container IDs.<\/li>\n<li>WordPress Multisite compatible.<\/li>\n<li>Full uninstall cleanup via <code>uninstall.php<\/code>.<\/li>\n<\/ul>","raw_excerpt":"Embed CareerSchoolApp application forms on your school&#039;s WordPress site with a Gutenberg block or shortcode.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/325424","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=325424"}],"author":[{"embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/careerschoolapp"}],"wp:attachment":[{"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=325424"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=325424"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=325424"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=325424"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=325424"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=325424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}