( ! ) Warning: Undefined array key "seen_test" in /home/jlahijani/Sites/goodui.org/site/ready.php on line 1083
Call Stack
#TimeMemoryFunctionLocation
10.0000465960{main}( ).../index.php:0
22.58622254952ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
32.58622254952ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
42.58622255368ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
52.58622255368ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
62.58882270176ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
72.60012304416ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
82.60012304416ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
92.60022306376ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
102.60022306376ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
112.60022306792ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
122.60022306792ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
132.60082307328ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
142.60082307328ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
152.60082308680ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
162.60082308680ProcessWire\TemplateFile->___render( ).../Wire.php:413
172.60092329240require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
182.96253875632ProcessWire\returnPageArrayFromCookie( $cookiename = 'seen_test' ).../tests.php:8

( ! ) Warning: Undefined array key "seen_test" in /home/jlahijani/Sites/goodui.org/site/ready.php on line 1083
Call Stack
#TimeMemoryFunctionLocation
10.0000465960{main}( ).../index.php:0
22.58622254952ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
32.58622254952ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
42.58622255368ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
52.58622255368ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
62.58882270176ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
72.60012304416ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
82.60012304416ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
92.60022306376ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
102.60022306376ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
112.60022306792ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
122.60022306792ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
132.60082307328ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
142.60082307328ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
152.60082308680ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
162.60082308680ProcessWire\TemplateFile->___render( ).../Wire.php:413
172.60092329240require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
182.96253875632ProcessWire\returnPageArrayFromCookie( $cookiename = 'seen_test' ).../tests.php:8
Tests | GoodUI ( ! ) Deprecated: strip_tags(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/templates/_og.php on line 13 Call Stack #TimeMemoryFunctionLocation 10.0000465960{main}( ).../index.php:0 22.58622254952ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55 32.58622254952ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484 42.58622255368ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952 52.58622255368ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416 62.58882270176ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114 72.60012304416ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184 82.60012304416ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484 92.60022306376ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060 102.60022306376ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484 112.60022306792ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952 122.60022306792ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416 132.60082307328ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575 142.60082307328ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484 152.60082308680ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952 162.60082308680ProcessWire\TemplateFile->___render( ).../Wire.php:413 174.18645685312require( '/home/jlahijani/Sites/goodui.org/site/templates/_main.php ).../TemplateFile.php:340 184.18725715856include( '/home/jlahijani/Sites/goodui.org/site/templates/_og.php ).../_main.php:64 194.18825714552strip_tags( $string = NULL ).../_og.php:13 " />

All Latest 411 A/B Tests

New 10 tests added since your last visit
Only Significant A/B Tests

Become a member to unlock the abiltiy to see the highest impact a/b tests. Being able to see the actual test results and sort by impact allows growth and experimentation teams to take action on the biggest gains first

MOST RECENT TESTS

New

Test #435 on Volders.de by Daria Kurchinskaia   Oct 17, 2022 Desktop Mobile Checkout

Daria Kurchinskaia Tested Pattern #9: Multiple Steps In Test #435 On Volders.de

In this experiment, a question about a customer's reason for purchase was broken out into a separate step and moved earlier in the process. In the control, this question was asked in the final checkout step along with a plan selection (Step 4 of 4). In the variation, this question was shifted as a standalone first step (Step 1 of 5). Impact on completed purchases was measured (for a contract cancellation service in this case).

Test #427 on Designlab.com by Daniel Shapiro   Aug 10, 2022 Desktop Mobile Checkout

Daniel Shapiro Tested Pattern #28: Easiest Fields First In Test #427 On Designlab.com

In this experiment, the course enrollment start date was moved from step 2 to step 1 of an enrollment / checkout flow. The test was run by Designlab - that offers design courses and education with a strong element of mentorship. Impact on progression to next step and completed transactions were measured.

Test #415 on Learnwithhomer.com by Stanley Zuo   Jun 09, 2022 Mobile Checkout

Stanley Zuo Tested Pattern #3: Fewer Form Fields In Test #415 On Learnwithhomer.com

Do fewer confirmation form fields matter? In this experiment, redundant password and email confirmation fields were removed during a signup / checkout funnel. Impact on signups was measured.

Test #414 on Volders.de by Frederik Fröhle   May 31, 2022 Desktop Mobile Checkout

Frederik Fröhle Tested Pattern #98: Auto Suggest In Test #414 On Volders.de

Does adding Google's address auto complete functionality to an address field help with higher form completions? This auto fill feature has been tested in the variation of a contract cancellation funnel. After selecting an auto completed address from a pulldown menu, the following fields were preselected: house number, zip code, city and country (potentially lowering friction?). Impact on successful form completions (contract cancellations) has been measured. Notice how the form also expanded progressively upon selecting the complete address in the variation.  

Test #412 on Volders.de by Frederik Fröhle   May 16, 2022 Desktop Mobile Checkout

Frederik Fröhle Tested Pattern #15: Bulleted Reassurances In Test #412 On Volders.de

The Volders experimentation team assumed that adding information about how long it might take to get a cancellation confirmation near a CTA Button would result in higher cancellation requests (the paid service being offered).

The variation contained additional copy translated from German to: "Most of our users receive their cancellation confirmation from <vendor> within 14 days by email or letter."

Test #403 on
( ! ) Deprecated: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/ready.php on line 521
Call Stack
#TimeMemoryFunctionLocation
10.0000465960{main}( ).../index.php:0
22.58622254952ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
32.58622254952ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
42.58622255368ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
52.58622255368ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
62.58882270176ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
72.60012304416ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
82.60012304416ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
92.60022306376ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
102.60022306376ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
112.60022306792ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
122.60022306792ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
132.60082307328ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
142.60082307328ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
152.60082308680ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
162.60082308680ProcessWire\TemplateFile->___render( ).../Wire.php:413
172.60092329240require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
183.05814035264ProcessWire\wireRenderFile( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 10; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = ??? ).../tests.php:54
193.05814035264ProcessWire\WireFileTools->render( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 10; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = [] ).../Functions.php:517
203.05814037160ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
213.05814037160ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['recentTestsPerPage' => 20, 'pages' => class ProcessWire\Pages { ... }, 'tenPageArray' => class ProcessWire\PageArray { ... }, 'seenPageArray' => class ProcessWire\PageArray { ... }, 'segments' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
223.05814037576ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
233.05814037576ProcessWire\TemplateFile->___render( ).../Wire.php:413
243.05824064256require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/recent-tests.php ).../TemplateFile.php:328
253.44424668408ProcessWire\wireRenderFile( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 9750; public $name = '403'; public $parent = '/tests/'; public $template = 'test'; public $number = 403; public $full_name = ''; public $tags = '5940'; public $metric_repeater = '(RepeaterPageArray) 9754'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = ??? ).../recent-tests.php:206
263.44424668408ProcessWire\WireFileTools->render( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 9750; public $name = '403'; public $parent = '/tests/'; public $template = 'test'; public $number = 403; public $full_name = ''; public $tags = '5940'; public $metric_repeater = '(RepeaterPageArray) 9754'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = [] ).../Functions.php:517
273.44434670416ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
283.44434670416ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['test' => class ProcessWire\Page { ... }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
293.44434670832ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
303.44434670832ProcessWire\TemplateFile->___render( ).../Wire.php:413
313.44434691528require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/test-kicker.php ).../TemplateFile.php:328
323.44564693528ProcessWire\urlFormatter( $url = '', $length = 20 ).../test-kicker.php:7
333.44564693528ucfirst( $string = NULL ).../ready.php:521
by Jakub Linowski   Mar 29, 2022 Desktop Mobile Checkout

Jakub Linowski Tested Pattern #42: Countdown Timer In Test #403

In this experiment, an urgency related message with a dynamic countdown timer was added on the final checkout screen. Impact on sales was measured.

Test #399 on
( ! ) Deprecated: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/ready.php on line 521
Call Stack
#TimeMemoryFunctionLocation
10.0000465960{main}( ).../index.php:0
22.58622254952ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
32.58622254952ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
42.58622255368ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
52.58622255368ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
62.58882270176ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
72.60012304416ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
82.60012304416ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
92.60022306376ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
102.60022306376ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
112.60022306792ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
122.60022306792ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
132.60082307328ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
142.60082307328ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
152.60082308680ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
162.60082308680ProcessWire\TemplateFile->___render( ).../Wire.php:413
172.60092329240require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
183.05814035264ProcessWire\wireRenderFile( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 10; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = ??? ).../tests.php:54
193.05814035264ProcessWire\WireFileTools->render( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 10; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = [] ).../Functions.php:517
203.05814037160ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
213.05814037160ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['recentTestsPerPage' => 20, 'pages' => class ProcessWire\Pages { ... }, 'tenPageArray' => class ProcessWire\PageArray { ... }, 'seenPageArray' => class ProcessWire\PageArray { ... }, 'segments' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
223.05814037576ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
233.05814037576ProcessWire\TemplateFile->___render( ).../Wire.php:413
243.05824064256require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/recent-tests.php ).../TemplateFile.php:328
253.50494757848ProcessWire\wireRenderFile( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 9486; public $name = '399'; public $parent = '/tests/'; public $template = 'test'; public $number = 399; public $full_name = ''; public $tags = '2075'; public $metric_repeater = '(RepeaterPageArray) 9490|9491'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = ??? ).../recent-tests.php:206
263.50494757848ProcessWire\WireFileTools->render( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 9486; public $name = '399'; public $parent = '/tests/'; public $template = 'test'; public $number = 399; public $full_name = ''; public $tags = '2075'; public $metric_repeater = '(RepeaterPageArray) 9490|9491'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = [] ).../Functions.php:517
273.50494759856ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
283.50494759856ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['test' => class ProcessWire\Page { ... }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
293.50504760272ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
303.50504760272ProcessWire\TemplateFile->___render( ).../Wire.php:413
313.50504780968require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/test-kicker.php ).../TemplateFile.php:328
323.50634782968ProcessWire\urlFormatter( $url = '', $length = 20 ).../test-kicker.php:7
333.50634782968ucfirst( $string = NULL ).../ready.php:521
by Jakub Linowski   Feb 27, 2022 Desktop Mobile Checkout

Jakub Linowski Tested Pattern #35: Floating Labels In Test #399

In this experiment, top-aligned field labels were tested against floating labels (with labels floating inside the form field itself).

Test #390 on Snocks.com by Melina Hess   Dec 21, 2021 Desktop Mobile Checkout

Melina Hess Tested Pattern #106: Back Buttons In Test #390 On Snocks.com

In this experiment, the variation has a "Back To Shopping Cart" link right underneath the checkout button. Impact on sales was measured.

Test #389 on Svsound.com by Keenan Davis   Dec 16, 2021 Desktop Mobile Checkout

Keenan Davis Tested Pattern #1: Remove Coupon Fields In Test #389 On Svsound.com

In this simple experiment, a highly visible coupon field was replaced with a less visible (but clickable) link in the variation. Clicking on the link would show the coupon field. Impact on sales and revenue was measured.

Test #383 on
( ! ) Deprecated: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/ready.php on line 521
Call Stack
#TimeMemoryFunctionLocation
10.0000465960{main}( ).../index.php:0
22.58622254952ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
32.58622254952ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
42.58622255368ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
52.58622255368ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
62.58882270176ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
72.60012304416ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
82.60012304416ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
92.60022306376ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
102.60022306376ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
112.60022306792ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
122.60022306792ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
132.60082307328ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
142.60082307328ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
152.60082308680ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
162.60082308680ProcessWire\TemplateFile->___render( ).../Wire.php:413
172.60092329240require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
183.05814035264ProcessWire\wireRenderFile( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 10; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = ??? ).../tests.php:54
193.05814035264ProcessWire\WireFileTools->render( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 10; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = [] ).../Functions.php:517
203.05814037160ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
213.05814037160ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['recentTestsPerPage' => 20, 'pages' => class ProcessWire\Pages { ... }, 'tenPageArray' => class ProcessWire\PageArray { ... }, 'seenPageArray' => class ProcessWire\PageArray { ... }, 'segments' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
223.05814037576ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
233.05814037576ProcessWire\TemplateFile->___render( ).../Wire.php:413
243.05824064256require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/recent-tests.php ).../TemplateFile.php:328
253.64284993136ProcessWire\wireRenderFile( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 8932; public $name = '383'; public $parent = '/tests/'; public $template = 'test'; public $number = 383; public $full_name = ''; public $tags = [...]; public $metric_repeater = '(RepeaterPageArray) 8936'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = ??? ).../recent-tests.php:206
263.64284993136ProcessWire\WireFileTools->render( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 8932; public $name = '383'; public $parent = '/tests/'; public $template = 'test'; public $number = 383; public $full_name = ''; public $tags = [...]; public $metric_repeater = '(RepeaterPageArray) 8936'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = [] ).../Functions.php:517
273.64284995144ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
283.64284995144ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['test' => class ProcessWire\Page { ... }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
293.64284995560ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
303.64284995560ProcessWire\TemplateFile->___render( ).../Wire.php:413
313.64295016256require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/test-kicker.php ).../TemplateFile.php:328
323.64415018256ProcessWire\urlFormatter( $url = '', $length = 20 ).../test-kicker.php:7
333.64415018256ucfirst( $string = NULL ).../ready.php:521
by Jakub Linowski   Nov 11, 2021 Desktop Checkout

Jakub Linowski Tested Pattern #123: Single Or Double Column Form Fields In Test #383

In this simple [inverted] experiment, the variation organized the form fields into a single column. The control had two columns of form fields.

Test #344 on
( ! ) Deprecated: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/ready.php on line 521
Call Stack
#TimeMemoryFunctionLocation
10.0000465960{main}( ).../index.php:0
22.58622254952ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
32.58622254952ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
42.58622255368ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
52.58622255368ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
62.58882270176ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
72.60012304416ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
82.60012304416ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
92.60022306376ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
102.60022306376ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
112.60022306792ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
122.60022306792ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
132.60082307328ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
142.60082307328ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
152.60082308680ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
162.60082308680ProcessWire\TemplateFile->___render( ).../Wire.php:413
172.60092329240require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
183.05814035264ProcessWire\wireRenderFile( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 10; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = ??? ).../tests.php:54
193.05814035264ProcessWire\WireFileTools->render( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 10; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = [] ).../Functions.php:517
203.05814037160ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
213.05814037160ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['recentTestsPerPage' => 20, 'pages' => class ProcessWire\Pages { ... }, 'tenPageArray' => class ProcessWire\PageArray { ... }, 'seenPageArray' => class ProcessWire\PageArray { ... }, 'segments' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
223.05814037576ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
233.05814037576ProcessWire\TemplateFile->___render( ).../Wire.php:413
243.05824064256require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/recent-tests.php ).../TemplateFile.php:328
253.69855067664ProcessWire\wireRenderFile( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 7678; public $name = '344'; public $parent = '/tests/'; public $template = 'test'; public $number = 344; public $full_name = ''; public $tags = '5940'; public $metric_repeater = '(RepeaterPageArray) 7682'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = ??? ).../recent-tests.php:206
263.69855067664ProcessWire\WireFileTools->render( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 7678; public $name = '344'; public $parent = '/tests/'; public $template = 'test'; public $number = 344; public $full_name = ''; public $tags = '5940'; public $metric_repeater = '(RepeaterPageArray) 7682'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = [] ).../Functions.php:517
273.69855069672ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
283.69855069672ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['test' => class ProcessWire\Page { ... }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
293.69865070088ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
303.69865070088ProcessWire\TemplateFile->___render( ).../Wire.php:413
313.69865090784require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/test-kicker.php ).../TemplateFile.php:328
323.69995092528ProcessWire\urlFormatter( $url = '', $length = 20 ).../test-kicker.php:7
333.69995092528ucfirst( $string = NULL ).../ready.php:521
by Jakub Linowski   Mar 11, 2021 Desktop Checkout

Jakub Linowski Tested Pattern #108: Frequently Asked Questions In Test #344

Three common delivery questions were answered at the bottom of a checkout page. 

Test #340 on
( ! ) Deprecated: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/ready.php on line 521
Call Stack
#TimeMemoryFunctionLocation
10.0000465960{main}( ).../index.php:0
22.58622254952ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
32.58622254952ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
42.58622255368ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
52.58622255368ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
62.58882270176ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
72.60012304416ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
82.60012304416ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
92.60022306376ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
102.60022306376ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
112.60022306792ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
122.60022306792ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
132.60082307328ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
142.60082307328ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
152.60082308680ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
162.60082308680ProcessWire\TemplateFile->___render( ).../Wire.php:413
172.60092329240require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
183.05814035264ProcessWire\wireRenderFile( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 10; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = ??? ).../tests.php:54
193.05814035264ProcessWire\WireFileTools->render( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 10; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = [] ).../Functions.php:517
203.05814037160ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
213.05814037160ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['recentTestsPerPage' => 20, 'pages' => class ProcessWire\Pages { ... }, 'tenPageArray' => class ProcessWire\PageArray { ... }, 'seenPageArray' => class ProcessWire\PageArray { ... }, 'segments' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
223.05814037576ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
233.05814037576ProcessWire\TemplateFile->___render( ).../Wire.php:413
243.05824064256require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/recent-tests.php ).../TemplateFile.php:328
253.75575136768ProcessWire\wireRenderFile( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 7545; public $name = '340'; public $parent = '/tests/'; public $template = 'test'; public $number = 340; public $full_name = ''; public $tags = '2143'; public $metric_repeater = '(RepeaterPageArray) 7549'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = ??? ).../recent-tests.php:206
263.75575136768ProcessWire\WireFileTools->render( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 7545; public $name = '340'; public $parent = '/tests/'; public $template = 'test'; public $number = 340; public $full_name = ''; public $tags = '2143'; public $metric_repeater = '(RepeaterPageArray) 7549'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = [] ).../Functions.php:517
273.75575138776ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
283.75575138776ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['test' => class ProcessWire\Page { ... }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
293.75585139192ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
303.75585139192ProcessWire\TemplateFile->___render( ).../Wire.php:413
313.75585159888require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/test-kicker.php ).../TemplateFile.php:328
323.75705161632ProcessWire\urlFormatter( $url = '', $length = 20 ).../test-kicker.php:7
333.75705161632ucfirst( $string = NULL ).../ready.php:521
by Jakub Linowski   Feb 25, 2021 Desktop Checkout

Jakub Linowski Tested Pattern #114: Less Or More Visible Prices In Test #340

In this experiment, the variation added a second total price at the bottom of the checkout screen just above the checkout button. The impact on sales was measured.

Test #320 on
( ! ) Deprecated: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/ready.php on line 521
Call Stack
#TimeMemoryFunctionLocation
10.0000465960{main}( ).../index.php:0
22.58622254952ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
32.58622254952ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
42.58622255368ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
52.58622255368ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
62.58882270176ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
72.60012304416ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
82.60012304416ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
92.60022306376ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
102.60022306376ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
112.60022306792ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
122.60022306792ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
132.60082307328ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
142.60082307328ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
152.60082308680ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
162.60082308680ProcessWire\TemplateFile->___render( ).../Wire.php:413
172.60092329240require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
183.05814035264ProcessWire\wireRenderFile( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 10; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = ??? ).../tests.php:54
193.05814035264ProcessWire\WireFileTools->render( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 10; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = [] ).../Functions.php:517
203.05814037160ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
213.05814037160ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['recentTestsPerPage' => 20, 'pages' => class ProcessWire\Pages { ... }, 'tenPageArray' => class ProcessWire\PageArray { ... }, 'seenPageArray' => class ProcessWire\PageArray { ... }, 'segments' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
223.05814037576ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
233.05814037576ProcessWire\TemplateFile->___render( ).../Wire.php:413
243.05824064256require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/recent-tests.php ).../TemplateFile.php:328
253.81275206000ProcessWire\wireRenderFile( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 6103; public $name = '320'; public $parent = '/tests/'; public $template = 'test'; public $number = 320; public $full_name = ''; public $tags = '2599'; public $metric_repeater = '(RepeaterPageArray) 7438'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = ??? ).../recent-tests.php:206
263.81275206000ProcessWire\WireFileTools->render( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 6103; public $name = '320'; public $parent = '/tests/'; public $template = 'test'; public $number = 320; public $full_name = ''; public $tags = '2599'; public $metric_repeater = '(RepeaterPageArray) 7438'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = [] ).../Functions.php:517
273.81285208008ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
283.81285208008ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['test' => class ProcessWire\Page { ... }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
293.81285208424ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
303.81285208424ProcessWire\TemplateFile->___render( ).../Wire.php:413
313.81285229120require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/test-kicker.php ).../TemplateFile.php:328
323.81405230864ProcessWire\urlFormatter( $url = '', $length = 20 ).../test-kicker.php:7
333.81405230864ucfirst( $string = NULL ).../ready.php:521
by Jakub Linowski   Oct 20, 2020 Desktop Checkout

Jakub Linowski Tested Pattern #49: Above The Fold Call To Action In Test #320

An extra "Place Order" button was duplicated above the fold on this checkout page. The control had a similar button further down at the bottom of the screen. The impact on total sales was measured from this change.

Test #61 on
( ! ) Deprecated: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/ready.php on line 521
Call Stack
#TimeMemoryFunctionLocation
10.0000465960{main}( ).../index.php:0
22.58622254952ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
32.58622254952ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
42.58622255368ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
52.58622255368ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
62.58882270176ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
72.60012304416ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
82.60012304416ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
92.60022306376ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
102.60022306376ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
112.60022306792ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
122.60022306792ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
132.60082307328ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
142.60082307328ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
152.60082308680ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
162.60082308680ProcessWire\TemplateFile->___render( ).../Wire.php:413
172.60092329240require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
183.05814035264ProcessWire\wireRenderFile( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 10; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = ??? ).../tests.php:54
193.05814035264ProcessWire\WireFileTools->render( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 10; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = [] ).../Functions.php:517
203.05814037160ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
213.05814037160ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['recentTestsPerPage' => 20, 'pages' => class ProcessWire\Pages { ... }, 'tenPageArray' => class ProcessWire\PageArray { ... }, 'seenPageArray' => class ProcessWire\PageArray { ... }, 'segments' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
223.05814037576ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
233.05814037576ProcessWire\TemplateFile->___render( ).../Wire.php:413
243.05824064256require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/recent-tests.php ).../TemplateFile.php:328
253.86685279656ProcessWire\wireRenderFile( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 5767; public $name = '61'; public $parent = '/tests/'; public $template = 'test'; public $number = 61; public $full_name = ''; public $tags = '(PageArray) '; public $metric_repeater = '(RepeaterPageArray) 7395'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = ??? ).../recent-tests.php:206
263.86685279656ProcessWire\WireFileTools->render( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 5767; public $name = '61'; public $parent = '/tests/'; public $template = 'test'; public $number = 61; public $full_name = ''; public $tags = '(PageArray) '; public $metric_repeater = '(RepeaterPageArray) 7395'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = [] ).../Functions.php:517
273.86695281664ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
283.86695281664ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['test' => class ProcessWire\Page { ... }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
293.86695282080ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
303.86695282080ProcessWire\TemplateFile->___render( ).../Wire.php:413
313.86695302776require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/test-kicker.php ).../TemplateFile.php:328
323.86825302792ProcessWire\urlFormatter( $url = '', $length = 20 ).../test-kicker.php:7
333.86825302792ucfirst( $string = NULL ).../ready.php:521
by Someone   Jun 26, 2020 Desktop Checkout

Someone Tested Pattern #9: Multiple Steps In Test #61

In this experiment, a single screen checkout was turned into a series of smaller steps in variation B. This was achieved by showing fewer fields on the first step, and shifting the remaining ones into a 3 step modal popup. The experiment measured successful transactions (sales).

Test #274 on
( ! ) Deprecated: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/ready.php on line 521
Call Stack
#TimeMemoryFunctionLocation
10.0000465960{main}( ).../index.php:0
22.58622254952ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
32.58622254952ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
42.58622255368ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
52.58622255368ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
62.58882270176ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
72.60012304416ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
82.60012304416ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
92.60022306376ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
102.60022306376ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
112.60022306792ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
122.60022306792ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
132.60082307328ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
142.60082307328ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
152.60082308680ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
162.60082308680ProcessWire\TemplateFile->___render( ).../Wire.php:413
172.60092329240require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
183.05814035264ProcessWire\wireRenderFile( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 10; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = ??? ).../tests.php:54
193.05814035264ProcessWire\WireFileTools->render( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 10; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = [] ).../Functions.php:517
203.05814037160ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
213.05814037160ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['recentTestsPerPage' => 20, 'pages' => class ProcessWire\Pages { ... }, 'tenPageArray' => class ProcessWire\PageArray { ... }, 'seenPageArray' => class ProcessWire\PageArray { ... }, 'segments' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
223.05814037576ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
233.05814037576ProcessWire\TemplateFile->___render( ).../Wire.php:413
243.05824064256require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/recent-tests.php ).../TemplateFile.php:328
253.92285348016ProcessWire\wireRenderFile( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 4744; public $name = '274'; public $parent = '/tests/'; public $template = 'test'; public $number = 274; public $full_name = ''; public $tags = '2075'; public $metric_repeater = '(RepeaterPageArray) 7315'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = ??? ).../recent-tests.php:206
263.92285348016ProcessWire\WireFileTools->render( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 4744; public $name = '274'; public $parent = '/tests/'; public $template = 'test'; public $number = 274; public $full_name = ''; public $tags = '2075'; public $metric_repeater = '(RepeaterPageArray) 7315'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = [] ).../Functions.php:517
273.92295350024ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
283.92295350024ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['test' => class ProcessWire\Page { ... }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
293.92295350440ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
303.92295350440ProcessWire\TemplateFile->___render( ).../Wire.php:413
313.92295371136require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/test-kicker.php ).../TemplateFile.php:328
323.92425371152ProcessWire\urlFormatter( $url = '', $length = 20 ).../test-kicker.php:7
333.92425371152ucfirst( $string = NULL ).../ready.php:521
by Someone   Dec 16, 2019 Desktop Mobile Checkout

Someone Tested Pattern #1: Remove Coupon Fields In Test #274

In this experiment, a fully visible coupon field (A) was made less visible by turning it into a default collaped link (B). Clicking on the link caused the coupon field to appear.

Test #267 on Backstage.com by Stanley Zuo   Nov 05, 2019 Mobile Checkout

Stanley Zuo Tested Pattern #99: Progress Bar In Test #267 On Backstage.com

A "Step X of 4" progress bar was tested against a fully visible one that was also clickable.

Test #261 on Valkexclusief.nl by Online Dialogue   Sep 20, 2019 Desktop Checkout

Online Dialogue Tested Pattern #111: Field Explanations In Test #261 On Valkexclusief.nl

In this experiment on Valk Exclusief's web site, a reason was provided for why the e-mail address is being collected. Google translation of the added text is as follows: "If your e-mail address is not yet known to us, we will ask you to add some missing information. Then you immediately benefit from our benefits such as the ValkLoyal savings program."

Test #232 on Yoast.com by Sjardo Janssen   Mar 15, 2019 Desktop Mobile Checkout

Sjardo Janssen Tested Pattern #6: Customer Star Ratings In Test #232 On Yoast.com

In this experiment, the Yoast team replaced one of the bulleted reassurances on their checkout page ("4.9 out of 5 stars" vs "24/7 Free support"). Raising the question - is free support or high reviews valued more? - Thanks Sjardo & Meike for sharing!

Test #229 on
( ! ) Deprecated: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/ready.php on line 521
Call Stack
#TimeMemoryFunctionLocation
10.0000465960{main}( ).../index.php:0
22.58622254952ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
32.58622254952ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
42.58622255368ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
52.58622255368ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
62.58882270176ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
72.60012304416ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
82.60012304416ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
92.60022306376ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
102.60022306376ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
112.60022306792ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
122.60022306792ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
132.60082307328ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
142.60082307328ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
152.60082308680ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
162.60082308680ProcessWire\TemplateFile->___render( ).../Wire.php:413
172.60092329240require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
183.05814035264ProcessWire\wireRenderFile( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 10; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = ??? ).../tests.php:54
193.05814035264ProcessWire\WireFileTools->render( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 10; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = [] ).../Functions.php:517
203.05814037160ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
213.05814037160ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['recentTestsPerPage' => 20, 'pages' => class ProcessWire\Pages { ... }, 'tenPageArray' => class ProcessWire\PageArray { ... }, 'seenPageArray' => class ProcessWire\PageArray { ... }, 'segments' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
223.05814037576ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
233.05814037576ProcessWire\TemplateFile->___render( ).../Wire.php:413
243.05824064256require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/recent-tests.php ).../TemplateFile.php:328
254.08355588208ProcessWire\wireRenderFile( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 3440; public $name = '229'; public $parent = '/tests/'; public $template = 'test'; public $number = 229; public $full_name = ''; public $tags = '5940'; public $metric_repeater = '(RepeaterPageArray) 7205'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = ??? ).../recent-tests.php:206
264.08355588208ProcessWire\WireFileTools->render( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 3440; public $name = '229'; public $parent = '/tests/'; public $template = 'test'; public $number = 229; public $full_name = ''; public $tags = '5940'; public $metric_repeater = '(RepeaterPageArray) 7205'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = [] ).../Functions.php:517
274.08365590216ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
284.08365590216ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['test' => class ProcessWire\Page { ... }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
294.08365590632ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
304.08365590632ProcessWire\TemplateFile->___render( ).../Wire.php:413
314.08365611328require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/test-kicker.php ).../TemplateFile.php:328
324.08485611344ProcessWire\urlFormatter( $url = '', $length = 20 ).../test-kicker.php:7
334.08485611344ucfirst( $string = NULL ).../ready.php:521
by Jakub Linowski   Mar 08, 2019 Desktop Mobile Checkout

Jakub Linowski Tested Pattern #99: Progress Bar In Test #229

Test #228 on
( ! ) Deprecated: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /home/jlahijani/Sites/goodui.org/site/ready.php on line 521
Call Stack
#TimeMemoryFunctionLocation
10.0000465960{main}( ).../index.php:0
22.58622254952ProcessWire\Wire->__call( $method = 'execute', $arguments = [0 => TRUE] ).../index.php:55
32.58622254952ProcessWire\WireHooks->runHooks( $object = class ProcessWire\ProcessPageView { }, $method = 'execute', $arguments = [0 => TRUE], $type = ??? ).../Wire.php:484
42.58622255368ProcessWire\Wire->_callMethod( $method = '___execute', $arguments = [0 => TRUE] ).../WireHooks.php:952
52.58622255368ProcessWire\ProcessPageView->___execute( $internal = TRUE ).../Wire.php:416
62.58882270176ProcessWire\ProcessPageView->renderPage( $page = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $request = class ProcessWire\PagesRequest { } ).../ProcessPageView.module:114
72.60012304416ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../ProcessPageView.module:184
82.60012304416ProcessWire\WireHooks->runHooks( $object = class ProcessWire\Page { public $id = 1020; public $name = 'tests'; public $parent = '/'; public $template = 'tests'; public $numChildren = 411; public $title = 'Tests'; public $urlSegment = 'screen'; public $data = ['title' => 'Tests', 'urlSegment' => 'screen'] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
92.60022306376ProcessWire\Wire->__call( $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:1060
102.60022306376ProcessWire\WireHooks->runHooks( $object = class ProcessWire\PageRender { public $data = ['clearCache' => 1] }, $method = 'renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }], $type = ??? ).../Wire.php:484
112.60022306792ProcessWire\Wire->_callMethod( $method = '___renderPage', $arguments = [0 => class ProcessWire\HookEvent { public $data = [...] }] ).../WireHooks.php:952
122.60022306792ProcessWire\PageRender->___renderPage( $event = class ProcessWire\HookEvent { public $data = ['object' => class ProcessWire\Page { ... }, 'method' => 'render', 'arguments' => [...], 'return' => NULL, 'replace' => FALSE, 'options' => [...], 'id' => 'Page:100.0:render', 'cancelHooks' => FALSE, 'when' => 'after'] } ).../Wire.php:416
132.60082307328ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../PageRender.module:575
142.60082307328ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['wire' => class ProcessWire\ProcessWire { ... }, 'classLoader' => class ProcessWire\WireClassLoader { ... }, 'hooks' => class ProcessWire\WireHooks { ... }, 'config' => class ProcessWire\Config { ... }, 'notices' => class ProcessWire\Notices { ... }, 'urls' => class ProcessWire\Paths { ... }, 'log' => class ProcessWire\WireLog { ... }, 'sanitizer' => class ProcessWire\Sanitizer { ... }, 'datetime' => class ProcessWire\WireDateTime { ... }, 'files' => class ProcessWire\WireFileTools { ... }, 'mail' => class ProcessWire\WireMailTools { ... }, 'database' => class ProcessWire\WireDatabasePDO { ... }, 'db' => class ProcessWire\DatabaseMysqli { ... }, 'cache' => class ProcessWire\WireCache { ... }, 'modules' => class ProcessWire\Modules { ... }, 'procache' => class ProcessWire\ProCache { ... }, 'fieldtypes' => class ProcessWire\Fieldtypes { ... }, 'fields' => class ProcessWire\Fields { ... }, 'fieldgroups' => class ProcessWire\Fieldgroups { ... }, 'templates' => class ProcessWire\Templates { ... }, 'pages' => class ProcessWire\Pages { ... }, 'permissions' => class ProcessWire\Permissions { ... }, 'roles' => class ProcessWire\Roles { ... }, 'users' => class ProcessWire\Users { ... }, 'user' => class ProcessWire\User { ... }, 'session' => class ProcessWire\Session { ... }, 'input' => class ProcessWire\WireInput { ... }, 'buster' => class ProcessWire\ProCacheBuster { ... }, 'process' => class ProcessWire\ProcessPageView { ... }, 'page' => class ProcessWire\Page { ... }, 'options' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
152.60082308680ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
162.60082308680ProcessWire\TemplateFile->___render( ).../Wire.php:413
172.60092329240require( '/home/jlahijani/Sites/goodui.org/site/templates/tests.php ).../TemplateFile.php:328
183.05814035264ProcessWire\wireRenderFile( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 10; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = ??? ).../tests.php:54
193.05814035264ProcessWire\WireFileTools->render( $filename = 'partials/recent-tests', $vars = ['recentTestsPerPage' => 20, 'currentTest' => NULL, 'pages' => class ProcessWire\Pages { }, 'tenPageArray' => class ProcessWire\PageArray { public $count = 10; public $items = [...]; public $selectors = '' }, 'seenPageArray' => class ProcessWire\PageArray { public $count = 0; public $items = [...]; public $selectors = '' }, 'segments' => [1 => 'screen', 2 => 'checkout']], $options = [] ).../Functions.php:517
203.05814037160ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
213.05814037160ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['recentTestsPerPage' => 20, 'pages' => class ProcessWire\Pages { ... }, 'tenPageArray' => class ProcessWire\PageArray { ... }, 'seenPageArray' => class ProcessWire\PageArray { ... }, 'segments' => [...]] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
223.05814037576ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
233.05814037576ProcessWire\TemplateFile->___render( ).../Wire.php:413
243.05824064256require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/recent-tests.php ).../TemplateFile.php:328
254.13625646992ProcessWire\wireRenderFile( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 3420; public $name = '228'; public $parent = '/tests/'; public $template = 'test'; public $number = 228; public $full_name = ''; public $tags = '5940'; public $metric_repeater = '(RepeaterPageArray) 7203'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = ??? ).../recent-tests.php:206
264.13625646992ProcessWire\WireFileTools->render( $filename = 'partials/test-kicker', $vars = ['test' => class ProcessWire\Page { public $id = 3420; public $name = '228'; public $parent = '/tests/'; public $template = 'test'; public $number = 228; public $full_name = ''; public $tags = '5940'; public $metric_repeater = '(RepeaterPageArray) 7203'; public $app = ''; public $url_ = ''; public $data = [...] }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE], $options = [] ).../Functions.php:517
274.13635649000ProcessWire\Wire->__call( $method = 'render', $arguments = [] ).../WireFileTools.php:1482
284.13635649000ProcessWire\WireHooks->runHooks( $object = class ProcessWire\TemplateFile { public $data = ['test' => class ProcessWire\Page { ... }, 'devices' => TRUE, 'screens' => TRUE, 'metricName' => FALSE] }, $method = 'render', $arguments = [], $type = ??? ).../Wire.php:484
294.13635649416ProcessWire\Wire->_callMethod( $method = '___render', $arguments = [] ).../WireHooks.php:952
304.13635649416ProcessWire\TemplateFile->___render( ).../Wire.php:413
314.13635670112require( '/home/jlahijani/Sites/goodui.org/site/templates/partials/test-kicker.php ).../TemplateFile.php:328
324.13765670128ProcessWire\urlFormatter( $url = '', $length = 20 ).../test-kicker.php:7
334.13765670128ucfirst( $string = NULL ).../ready.php:521
by Jakub Linowski   Mar 05, 2019 Desktop Mobile Checkout

Jakub Linowski Tested Pattern #99: Progress Bar In Test #228

The variation added a progress bar to one of the checkout steps for a ticket ordering site.