HEX
Server: Apache/2.4.66 (Debian)
System: Linux 6dfabc3b2241 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64
User: (1000)
PHP: 8.3.30
Disabled: NONE
Upload Files
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/");