File: //proc/thread-self/cwd/create-donate-page.php
<?php
/**
* Create the Donate page and populate with Figma content.
*/
// Check if page already exists
$existing = get_page_by_path('donate');
if ($existing) {
$post_id = $existing->ID;
WP_CLI::log("Donate page exists (ID: {$post_id}), updating...");
} else {
$post_id = wp_insert_post([
'post_title' => 'Donate',
'post_name' => 'donate',
'post_type' => 'page',
'post_status' => 'publish',
'post_parent' => 25, // Support CAE page
]);
WP_CLI::log("Created Donate page (ID: {$post_id})");
}
// Build donate block data
$donate_data = [
'donate_cta_heading' => 'WE NEED THE SUPPORT OF DONORS, LARGE AND SMALL',
'_donate_cta_heading' => 'field_donate_cta_heading',
'donate_tax_notice' => 'All donations are tax deductible to the fullest extent allowed by law. Our federal Tax ID Number is 57-1201683.',
'_donate_tax_notice' => 'field_donate_tax_notice',
'donate_thankyou_heading' => 'THANK YOU FOR YOUR SUPPORT AND ASSISTANCE',
'_donate_thankyou_heading' => 'field_donate_thankyou_heading',
'donate_thankyou_cards' => 3,
'_donate_thankyou_cards' => 'field_donate_thankyou_cards',
'donate_thankyou_cards_0_card_title' => 'Support Local Farms',
'_donate_thankyou_cards_0_card_title' => 'field_donate_card_title',
'donate_thankyou_cards_0_card_description' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua',
'_donate_thankyou_cards_0_card_description' => 'field_donate_card_description',
'donate_thankyou_cards_1_card_title' => 'Strengthen Communities',
'_donate_thankyou_cards_1_card_title' => 'field_donate_card_title',
'donate_thankyou_cards_1_card_description' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua',
'_donate_thankyou_cards_1_card_description' => 'field_donate_card_description',
'donate_thankyou_cards_2_card_title' => 'Build Food Systems',
'_donate_thankyou_cards_2_card_title' => 'field_donate_card_title',
'donate_thankyou_cards_2_card_description' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua',
'_donate_thankyou_cards_2_card_description' => 'field_donate_card_description',
'donate_form_heading' => 'SOWING OPPORTUNITY!',
'_donate_form_heading' => 'field_donate_form_heading',
'donate_form_description' => 'Thank you for supporting the farms, people, and places that make up our agricultural economy. Working together, we build a future with healthy working lands, abundant local food, and communities where everyone can thrive.',
'_donate_form_description' => 'field_donate_form_description',
'donate_form_amounts' => '50,100,250,500,1000',
'_donate_form_amounts' => 'field_donate_form_amounts',
'donate_form_button_text' => 'Donate Now',
'_donate_form_button_text' => 'field_donate_form_button_text',
];
// Hero data
$hero_data = [
'hero_heading' => 'SUPPORT CAE',
'_hero_heading' => 'field_hero_heading',
'hero_description' => 'Your generosity helps sustain Vermont farms, food businesses, and communities.',
'_hero_description' => 'field_hero_description',
];
// CTA data
$cta_data = [
'cta_heading' => 'GET INVOLVED',
'_cta_heading' => 'field_cta_heading',
'cta_description' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
'_cta_description' => 'field_cta_description',
];
$hero_block = '<!-- wp:acf/hero ' . json_encode(['name' => 'acf/hero', 'data' => $hero_data, 'mode' => 'preview'], JSON_UNESCAPED_SLASHES) . ' /-->';
$donate_block = '<!-- wp:acf/donate ' . json_encode(['name' => 'acf/donate', 'data' => $donate_data, 'mode' => 'preview'], JSON_UNESCAPED_SLASHES) . ' /-->';
$cta_block = '<!-- wp:acf/cta ' . json_encode(['name' => 'acf/cta', 'data' => $cta_data, 'mode' => 'preview'], JSON_UNESCAPED_SLASHES) . ' /-->';
$post_content = $hero_block . "\n\n" . $donate_block . "\n\n" . $cta_block;
// Verify parse
$blocks = parse_blocks($post_content);
$names = array_filter(array_map(function($b) { return $b['blockName']; }, $blocks));
WP_CLI::log("Blocks: " . implode(', ', $names));
$has_donate_data = isset($blocks[1]['attrs']['data']['donate_form_heading']);
if (!$has_donate_data) {
WP_CLI::error('Donate block data not parsed correctly.');
exit(1);
}
wp_update_post(['ID' => $post_id, 'post_content' => $post_content]);
wp_cache_flush();
// Verify render
$post = get_post($post_id);
$content = apply_filters('the_content', $post->post_content);
$has_donate = strpos($content, 'donate-block') !== false;
$has_hero = strpos($content, 'hero-block') !== false;
WP_CLI::success("Donate page ready. Hero: " . ($has_hero ? 'YES' : 'NO') . ", Donate: " . ($has_donate ? 'YES' : 'NO'));
WP_CLI::log("URL: /donate/");