Как я могу назвать вторичный PHP-файл? Вот мой код.
add_filter( 'woocommerce_product_tabs', 'woo_simfree_product_tab' ); function woo_simfree_product_tab( $tabs ) { global $post; if( function_exists('get_product') ){ $product = get_product( $post->ID ); if( $product->is_type( 'grouped' ) ){ $tabs['simfree-plans'] = array( 'title' => __( 'SIM Free', 'woocommerce' ), 'priority' => 20, 'callback' => 'woo_simfree_product_tab_content' ); return $tabs; } else { return $tabs; } } } function woo_simfree_product_tab_content() { require get_template_directory() . "/custom-groups/grouped-simfree.php"; }
Проблема заключается в извлечении файла прямо здесь … (3-я строка снизу)
require get_template_directory() . "/custom-groups/grouped-simfree.php";
Это не работает и вызывает странное поведение. У меня есть пользовательский PHP-файл, который я хочу загрузить на этой вкладке, которую я создал (grouped-simfree.php), но я не знаю, как это сделать.
Каков правильный способ загрузки пользовательского PHP-файла в wordpress из функции на крючке?
EDIT: (Что не так с этой картинкой?) Я действительно решил эту проблему много лет назад, но теперь я вернулся к той же проблеме, но одно и то же решение почему-то не работает. источник (мой вопрос с 2014 года): https://stackoverflow.com/questions/30233440/woocommerce-woocommerce-grouped-add-to-cart-функция
function woocommerce_grouped_add_to_cart2() { global $product; wc_get_template( get_template_directory() . '/custom-groups/grouped-simfree.php', array( 'grouped_product' => $product, 'grouped_products' => $product->get_children(), 'quantites_required' => false ) ); } function woo_simfree_product_tab_content() { woocommerce_grouped_add_to_cart2(); }
EDIT 2 Если я переведу пользовательский шаблон в папку шаблонов плагинов woocommerce.
@Reigel это работает, но теперь я собираюсь потерять шаблон, когда когда-либо обновляю woocommerce. Я просто понял, что это то, что я сделал пару лет назад, и теперь я понимаю, почему мой сайт разбился, потому что шаблоны были перезаписаны во время обновления woocommerce
function woocommerce_grouped_add_to_cart2() { global $product; wc_get_template( 'single-product/add-to-cart/grouped-simfree.php', array( 'grouped_product' => $product, 'grouped_products' => $product->get_children(), 'quantites_required' => false ) ); } function woo_simfree_product_tab_content() { woocommerce_grouped_add_to_cart2(); }
Вам нужно будет использовать get_stylesheet_directory()
для включения вашего файла, если это get_stylesheet_directory()
тема, сделайте что-то вроде этого:
require get_stylesheet_directory() . "/custom-groups/grouped-simfree.php";
Файл должен быть в wp-content / themes / your-child-theme / custom-groups / grouped-simfree.php