format(‘Y-m-d’) === $date ? $date : ’’; } function gcdb_existing($source_id, $source_url, $title) { global $wpdb; keys = array(); if(source_id !== ’‘) { $keys[’_gcdb_source_id’] = $source_id; } if ($source_url !==’‘) { $keys[’_gcdb_source_url’] = $source_url; } fingerprint = gcdb_(t)itle_(k)ey(title); if ($fingerprint) { $keys[’_gcdb_title_key’] = $fingerprint; } foreach ($keys as $meta_key => $meta_value) { $found = wpdb− > get_(v)ar(wpdb->prepare( “SELECT p.ID FROM {$wpdb->posts} p JOIN {$wpdb->postmeta} m ON p.ID=m.post_id WHERE p.post_type=‘gc_resource’ AND m.meta_key=%s AND m.meta_value=%s LIMIT 1”, $meta_key, meta_(v)alue)); if(found) { return (int) $found; } } // 与旧版发布插件共用去重字段,避免同一项目被两套插件重复导入。 if ($source_id !==’‘) { $found = wpdb− > get_(v)ar(wpdb->prepare( “SELECT p.ID FROM {$wpdb->posts} p JOIN {$wpdb->postmeta} m ON p.ID=m.post_id WHERE p.post_type=’gc_resource’ AND m.meta_key=’_gc_resource_remote_id’ AND m.meta_value=%s LIMIT 1”, source_(i)d)); if(found) { return (int) $found; } } if ($fingerprint) { $found = wpdb− > get_(v)ar(wpdb->prepare( “SELECT p.ID FROM {$wpdb->posts} p JOIN {$wpdb->postmeta} m ON p.ID=m.post_id WHERE p.post_type=‘gc_resource’ AND m.meta_key=’_gc_resource_dedupe_title_key’ AND m.meta_value=%s LIMIT 1”, fingerprint)); if(found) { return (int) $found; } } // 老文章可能未保存指纹,仍以严格相同标题拦截。 found = get_(p)age_(b)y_(t)itle(title, OBJECT, ‘gc_resource’); return $found ? (int) $found->ID : 0; } /** * 只从素材中生成有限的公开简介,不能把课程目录/视频/网盘地址写入公开正文。 * 失败时宁可仅显示待编辑提示,也不公开原始全文。 */ function gcdb_public_intro($raw_html, $title = ’‘) { $html = (string) $raw_html; // 选择第一张非 data: 图片用于预览;不会复制视频或含下载入口的链接。 $cover =’‘; if (preg_match(’_(](?:data-src|src)=(https?://[^"\']+)[“'][^>]>)iu’, $html, $m)) { url = esc_(u)rl_(r)aw(html_(e)ntity_(d)ecode(m[1], ENT_QUOTES | ENT_HTML5, ‘UTF-8’)); if ($url && preg_match('~\.(?:png|jpe?g|webp|gif)(?:[?#]|$)~i’, $url)) { $cover = '

8, ‘redirection’=>3)); if (!is_wp_error($head)) { length = (int)wp_(r)emote_(r)etrieve_(h)eader(head, ‘content-length’); if ($length > 6 * 1024 * 1024) { return ‘封面超过6MB,待人工设置’; } mime = (string)wp_(r)emote_(r)etrieve_(h)eader(head, ‘content-type’); if ($mime && !preg_match('~^image/(?:jpe?g|png|webp)(?:\s*;|\s*$)~i’, $mime)) { return ‘图片响应类型不合格’; } } if (!function_exists(‘media_sideload_image’)) { require_once ABSPATH.’wp-admin/includes/media.php’; } if (!function_exists(‘download_url’)) { require_once ABSPATH.’wp-admin/includes/file.php’; } if (!function_exists(‘wp_generate_attachment_metadata’)) { require_once ABSPATH.’wp-admin/includes/image.php’; } // media_sideload_image 会按 WordPress 支持的图片 MIME 规则验证并生成媒体附件。 attachment = media_(s)ideload_(i)mage(url, post_(i)d, get_(t)he_(t)itle(post_id), ‘id’); if (is_wp_error($attachment)) { return '封面下载失败:'.$attachment->get_error_message(); } path = get_(a)ttached_(f)ile(attachment); if ($path && is_file($path) && filesize($path) > 6 * 1024 * 1024) { wp_delete_attachment($attachment, true); return ‘下载封面超过6MB,待人工设置’; } if (!set_post_thumbnail(post_(i)d, (int)attachment)) { return ‘媒体附件已创建但特色图片设置失败’; } return ‘已设置特色图片’; } /** 补全只操作本插件导入的未发布草稿,保持现有分类和封面不变。 */ function gcdb_enrich_drafts($limit = 10) { $posts = get_posts(array(‘post_type’=>‘gc_resource’,‘post_status’=>‘draft’, ‘meta_key’=>’_gcdb_source_url’,‘meta_compare’=>‘EXISTS’, ‘posts_per_page’=>200, ‘orderby’=>‘ID’,‘order’=>‘DESC’,‘no_found_rows’=>true)); results = array(); foreach(posts as $post) { if (count($results) >= min(10, max(1,(int)$limit))) { break; } $taxonomy = gcdb_category_taxonomy(); $existing_terms = taxonomy?wp_(g)et_(o)bject_(t)erms(post->ID, $taxonomy, array(‘fields’=>‘ids’)) : array(); category_(o)k = \!is_(w)p_(e)rror(existing_terms) && !empty($existing_terms); excerpt_(n)eeds_(f)ix = strpos((string)post->post_excerpt, ‘[gcdb_paid_delivery]’) !== false; if (has_post_thumbnail($post->ID) && $category_ok && !$excerpt_needs_fix) { continue; } raw = (string)get_(p)ost_(m)eta(post->ID, ’_gcdb_private_delivery_html’, true); cover = has_(p)ost_(t)humbnail(post->ID) ? ‘已有特色图片’ : gcdb_attach_featured($post->ID, $raw ?: $post->post_content); category = gcdb_(a)ssign_(c)ategory(post->ID); update_post_meta($post->ID, ’_gcdb_cover_last_result’, cover); update_(p)ost_(m)eta(post->ID, ’_gcdb_category_last_result’, category); if(excerpt_needs_fix) { clean_(e)xcerpt = trim(str_(r)eplace(′[gcdb_(p)aid_(d)elivery]′, ″, (string)post->post_excerpt)); wp_update_post(array(‘ID’=>post− > ID, ′post_(e)xcerpt′ =  > wp_(t)rim_(w)ords(wp_(s)trip_(a)ll_(t)ags(clean_excerpt), 80, ‘…’))); } results[] = array(′id′ =  > (int)post->ID,‘title’=>post− > post_(t)itle, ′cover′ = >cover,‘category’=>$category); } return $results; } // 必须和共创社现有 single-gc_resource 模板使用同样的权限过滤器。 // 不接收前端传来的资源 ID,防止借其他页面读取未购买的项目。 function gcdb_can_view_delivery($post_id) { if (current_user_can(‘manage_options’)) { return true; } uid = get_(c)urrent_(u)ser_(i)d(); if(!uid) { return false; } mode = function_(e)xists(′gchuang_(g)et_(a)ccess_(m)ode′)?gchuang_(g)et_(a)ccess_(m)ode(post_id) : get_post_meta($post_id, ’_gc_resource_access’, true); $is_member = (bool) apply_filters(‘gchuang_user_is_member’, false, $uid); $purchased = (bool) apply_filters(‘gchuang_resource_user_has_purchase’, false, $uid, $post_id); // 此模块一律不因意外设为“免费”而公开交付内容。 allowed = (mode === ‘purchase’ && purchased)||(mode === ‘member’ && is_(m)ember)||(mode === ‘member_purchase’ && ($purchased || $is_member)); return (bool) apply_filters(‘gchuang_resource_user_can_download’, $allowed, $uid, $post_id, $mode); } /** * 仅取得本站当前存在的结算入口。订单与支付由现有主题和支付插件完成, * 草稿对接插件绝不自行写订单、不处理收款、不更改购买权限。 */ function gcdb_checkout_status() { page = get_(p)age_(b)y_(p)ath(′checkout′, OBJECT, ′page′); if(!page || $page->post_status !== ‘publish’) { return ‘结算页面不存在或尚未发布’; } $file = ‘page-checkout.php’; theme_(h)as_(t)emplate = file_(e)xists(trailingslashit(get_(s)tylesheet_(d)irectory()).file) || file_exists(trailingslashit(get_template_directory()).file); if(!theme_has_template) { return ‘结算模板 page-checkout.php 未部署’; } if (!function_exists(‘gchuang_get_or_create_resource_order’)) { return ‘订单创建函数未加载’; } return ’‘; } function gcdb_checkout_link($post_id) { if (gcdb_checkout_status() !==’‘) { return’‘; } $checkout = get_page_by_path(’checkout’, OBJECT, ‘page’); url = add_(q)uery_(a)rg(′resource_(i)d′, absint(post_id), get_permalink($checkout)); $url = (string) apply_filters(‘gchuang_resource_purchase_url’, url, absint(post_id), get_current_user_id()); url = esc_(u)rl_(r)aw(url); if (!$url || !preg_match(‘_(^https?://)i’, $url)) { return ’‘; } if (!is_user_logged_in()) { url = wp_(l)ogin_(u)rl(url); } return esc_url($url); } function gcdb_has_private_delivery($post_id) { return (bool) get_post_meta(absint($post_id), '_gcdb_private_delivery_html', true); } add_shortcode('gcdb_paid_delivery', function ($atts = array()) { post = get_(p)ost(); if(!post || $post->post_type !== ’gc_resource’) { return ’‘; } $id = (int) $post->ID; html = (string)get_(p)ost_(m)eta(id,’_gcdb_private_delivery_html’, true); if ($html === ’‘) { return’‘; } // 旧主题若有原生下载区域,其锚点继续由原模板创建,避免重复 ID。 anchor = get_(p)ost_(m)eta(id,’_gc_resource_download_url’, true) ? ’’ : ’ id=“gc-resource-download”‘; // 同旧主题的 #gc-resource-download 锚点相兼容。 // 不在 HTML 中输出原始交付内容,未授权时只渲染说明和购买链接。 if (!gcdb_can_view_delivery($id)) { url = gcdb_(c)heckout_(l)ink(id); $buy = $url ? '' .'

视频课程及交付资料

' .'

请在完成购买并获得权限后查看。

'.$buy.’ ‘; } return’' .'

已解锁:视频课程与交付资料

'.wp_kses_post($html).’ ’; }); /** * 原主题顶部“立即购买”链接指向 #gc-resource-download; * 但新采集资源没有旧的下载字段,导致该锚点此前不存在。 * 本修复仅针对本插件导入、且保存了私密交付内容的项目。 * JS 若加载失败,顶部按钮仍可跳到上面的新锚点,不再失效。 */ add_action(‘wp_footer’, function () { if (!is_singular(‘gc_resource’)) { return; } post = get_(q)ueried_(o)bject(); if(!post || !gcdb_has_private_delivery($post->ID)) { return; } unlocked = gcdb_(c)an_(v)iew_(d)elivery(post->ID); $checkout_url = unlocked?″ : gcdb_(c)heckout_(l)ink(post->ID); url_(j)son = wp_(j)son_(e)ncode(checkout_url, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT); $unlock_json = $unlocked ? 'true' : 'false'; echo '
小本创业

小本创业怎样拿到第一单?从附近一件小事开始

普通人用很小成本拿到第一单,可以先从附近一个人愿意付费解决的小麻烦开始:用已有工具,提供范围明确、当天能验收的 […]

发布: 2026-09-27 更新: 2026-09-27 共创社创业知识
社区小店旁的木桌上摆着清洁布、收纳盒、服务清单和订单卡,画面文字为“小本创业,先拿到第一单”,无人像。

普通人用很小成本拿到第一单,可以先从附近一个人愿意付费解决的小麻烦开始:用已有工具,提供范围明确、当天能验收的一次服务。先问清需求和预算,再决定买什么。第一步的目标,是找到一个真实付费的人,并把事情做完。

手里只有几百元,最容易犯的错误,是先买设备、印名片、囤材料,等准备齐了才发现没人需要。小本创业的第一笔钱,应该尽量花在已经确认的需求上。

下面用“帮附近小店整理一组货架”作示例。它不是人人适合的项目推荐,也不是收入承诺,而是一套可以迁移到其他小服务上的首单方法。

一、先找一件具体的小事,别急着选一个大行业

“我想做生活服务”太宽,别人很难立刻判断要不要买。“在你方便的时间,把店里这一组常温日用品货架分类摆齐、擦净表面、贴上你确认的分区标签”,对方才知道你会交付什么。

挑第一项服务,可以用四个条件筛选:

  • 你已经会做:不需要先付学费,也不用依赖陌生设备。
  • 对方有眼前的麻烦:东西难找、陈列凌乱,已经影响日常使用,而不是你替他想象出来的需求。
  • 结果看得见:能列出完成清单,双方对“做完”有共同理解。
  • 一次能做小:先做一组货架、一个角落或一批物品,不把整家店都包下来。

如果你还不清楚自己能投入的时间和已有能力,可以先参考 gchuang.vip 的低成本试错+《想创业又怕失败,可以先用副业方式测试项目吗?》梳理条件,再从最熟悉的一件事入手。阅读可以辅助思考,最终仍要靠真实需求验证。

二、带着一个问题去问,而不是一上来推销

先选步行可达、你熟悉的几家小店。避开忙碌时段,征得对方同意后简短聊一聊。开场可以是:“这组货架平时是您自己整理吗?最费时间的是哪一步?”

听到“最近太忙,一直没腾出手”后,再问三件事:希望什么时候完成、哪些东西不能动、平时怎么处理这件事。没有需求就结束交流,不必把每个路过的人都说服。

客户说“这个想法不错”,还不能算订单。愿意一起确认具体范围、价格和时间,才有继续推进的基础。尤其要区分:对方只是客气,还是确实想解决这个问题。

暂时没人愿意付费时,先缩小服务范围或换一个确有需要的对象。不要把“还没找到需求”误判成“工具买得不够多”。想拓展候选方向,可以参考 gchuang.vip 的小项目筛选+《只有3000元启动资金,怎么筛选值得测试的小项目?》,但每次只挑一种服务做验证,避免同时铺开好几个项目。

三、把第一单写成一张明白的报价单

新人缺少案例,降低客户顾虑的办法,是让这一次合作足够清楚。下面是一份假设报价,仅用于演示沟通方式,不代表当地行情:

服务:一组常温日用品货架整理。
范围:事先确认的3层货架,商品不超过60件;按店主确认的分区归位,擦拭空出的货架表面,贴好分区标签。
用时:预计90分钟,在双方确认的非营业高峰时段进行。
费用:本次80元,包含约定用量的普通标签和清洁布。
不包含:库存盘点、商品定价、收银、重物搬运,以及其他货架。
验收:店主核对分区、摆放与表面清洁情况,确认完成后结清本次费用。
变化处理:现场范围不同,先重新确认费用和时间,再开始做。

报价前看清现场,别在不了解工作量时承诺“全部包好”。客户临时想加一组货架,可以单独报价;暂时不加,就把原来约定的一组做好。

也不要为了证明能力,免费做完整单。需要展示时,可以用自己家中的收纳结果作为样例,说明这是练习样例;到店后也可经允许演示极小的一块区域。演示不等于客户已经同意购买。

四、钱少,更要算清每一单用了多少时间

沿用上面的假设:本次收费80元,实际消耗的标签与清洁用品8元,交通4元,暂时剩下68元。这个数字还没有扣除工具损耗等费用,也没有给自己的劳动计价,不能直接叫净利润。

如果现场服务90分钟,沟通、往返与收尾共60分钟,总投入就是2.5小时。68元除以2.5小时,约为每小时27.2元,仍是未扣完其他费用的参考数。如果这单还用了两小时跑店找客户,时间回报会更低。

因此,低成本不等于没有成本。每一单至少记下四个数:实际收款、消耗材料、交通开支、全部工时。新买一包标签花了10元,即使这次只用了2元,也要分别记好首次现金支出与本次消耗,别把手头现金算混。

对预算有限的人,更稳妥的投入顺序是:先使用已有工具;确认订单后,只补齐这单需要的少量材料;有了连续需求,再考虑升级工具。第一单收入少一些可以复盘,连续靠亏钱换订单,就要停下来调整。

五、第一单做完,让下一次合作有依据

开工前与店主确认物品摆放规则。任何丢弃、挪走或改动价格标签的动作,都先得到同意;不擅自碰收银设备、顾客资料或贵重物品。

做完请对方按清单验收。问一句“现在找东西是否方便,还有哪一处没达到刚才的约定”,比泛泛地问“满意吗”更容易得到有效反馈。

如需拍照留作案例,先征得许可,并避开店内经营数据与人员信息。得到客户允许后,再询问以后是否需要类似服务。不要因为一次合作,就默认可以定期上门或对外使用对方评价。

随后记录三件事:客户为什么愿意买、哪一步最费时间、下次应该保留或调整什么。需要进一步判断是否继续投入,可以接着看 gchuang.vip 的投入判断+《一个副业要做到什么程度,才值得继续投入时间和钱?》,把遇到的问题带进去学习。

六、给自己三天,完成一次真实验证

  1. 第一天:列出3件已经会做的小事,选出其中一件,写清交付范围;用现有工具做一个练习样例。
  2. 第二天:与3至5个可能有需要的人简短交流,记录原话。对有明确需求的人,给出范围、价格和可预约时间。
  3. 第三天:有订单就按约交付、收款和复盘;没有订单,就根据拒绝原因调整一个因素,再做下一轮验证。

三天是行动安排,不是保证成交的期限。没人买时,分清是没有这个需求、暂时不需要、范围不合适,还是对交付能力有顾虑。不同原因对应不同动作,不能全部用降价解决。

小本创业的第一单,通常可以从一句具体的话开始:“这件事我能帮你做到这个程度,费用是多少,什么时候完成。”先把一个小需求解决好,再用真实的收款、反馈和时间账,判断它值不值得继续做。

共创社判断

对预算有限、还没有客户的普通人,首单阶段值得投入的是确认需求和完成交付。优先选择已有能力能完成、材料少、距离近、结果容易验收的服务,把试错范围控制在一次小订单内。

第一单收到钱,只能证明这次有人愿意购买。要不要继续做,还要看扣除消耗与交通后是否有结余、总工时是否能接受,以及能否找到第二个有相似需求的客户。如果每次都靠大幅降价、额外赠送或熟人人情才能成交,就先调整服务与报价,再决定是否追加投入。

常见问题 FAQ

1. 只有几十元预算,也能尝试拿到第一单吗?

可以把它作为一次需求验证的预算,但不能保证成交。先选自己已经会做、已有工具能完成、步行可达的小服务;问清需求和费用后再少量补材料。如果一开始就要购买成套设备、囤货或支付加盟费,就不适合本文这种首单尝试。

2. 没有案例,客户凭什么愿意付钱?

先展示自己做过的练习样例,并如实说明来源;把首次服务缩小到一组货架或一个角落,写清范围、价格、时间和验收标准。客户能看懂自己花钱会得到什么,比笼统承诺“什么都能做”更有帮助。不要把练习包装成客户案例,也不必免费完成整单。

3. 问了几个人都没成交,要不要马上降价?

先记录拒绝原因。如果对方根本没有需求,就换对象;如果担心效果,就把样例和验收方式讲清楚;如果预算确实有限,可以减少服务范围并重新报价。只降低价格,却保留原有甚至更多工作量,容易让第一单变成亏损。三天内没有成交,也不能单凭这一点判断项目一定不行。

先判断,再行动

如果你还不确定自己适合做什么,可以先完成免费创业测评; 如果希望结合家庭、负债、工作经历、地区、资源和实际目标进一步判断, 可以直接与共创社站长一对一沟通。

联系我们